Saya memiliki basis data Spatialite dengan poin. Dari waktu ke waktu sekarang poin ditambahkan. Apa cara termudah untuk menghapus duplikat berdasarkan koordinat?
spatialite
johannes
sumber
sumber
Saya pikir yang termudah adalah tidak pernah membiarkan duplikat masuk. Tambahkan kendala unik pada bidang geometri. Saya tidak tahu bagaimana itu akan bekerja dalam spatiallite tetapi dalam postgis konstrint akan membandingkan kotak pembatas yang akan menyelam efek yang diinginkan dalam kasus poin.
jika tidak masalah yang mana dari duplikat untuk menghapus Anda bisa membangun kueri yang menghapus semua baris dengan id yang tidak ditemukan dalam subquery yang memilih geometri yang berbeda. sama di sini, aman dengan poin tetapi bukan tipe lain karena hanya bbox yang akan dibandingkan bukan geometri yang sebenarnya (jika bekerja dengan cara yang sama dengan postgis).
/ Nicklas
sumber
(diambil dari jawaban Denis Valeev di sini: /programming/3777633/delete-duplicate-rows-dont-delete-all-duplicate )
sumber
Dalam kasus saya, cara yang paling efisien adalah dengan menggunakan indeks spasial dari layer. Dengan kueri ini, saya hanya menyimpan 1 geometri untuk setiap fitur yang tumpang tindih. Saya telah melakukan tes dengan TIN yang diubah menjadi Linestring.
Untuk memahami indeks spasial dengan benar, berikut ini dua kueri untuk mengubah indeks spasial menjadi poligon.
Jika berhasil, pulihkan kolom geometri untuk dapat divisualisasikan ke pemirsa favorit Anda:
sumber