Saya ingin dapat membandingkan fitur di Layer 1 (sumber) dengan fitur di Layer 2 (pembaruan ke sumber) untuk melihat apakah ada fitur geometri dan / atau atribut yang berubah. Saya juga ingin memiliki "laporan" yang dihasilkan menyatakan apa yang telah berubah.
Edit untuk Klarifikasi: Perubahan pada geometri juga termasuk menemukan fitur yang telah ditambahkan ke lapisan data baru. Penghapusan mungkin menarik untuk dimiliki, tetapi penambahan lebih penting.
Saya telah melihat-lihat fungsi PostGIS dan sepertinya tidak dapat menemukan alat yang dirancang untuk membandingkan dan melaporkan perbedaan antara fitur 2 layer, baik geometri maupun atribut.
Saya mencari sesuatu yang mirip dengan alat " Bandingkan Fitur " ArcGIS .
Jika tidak ada yang seperti ini di PostGIS, apakah ada alat open-source lain yang akan menjawab jenis pertanyaan ini? Terima kasih.
sumber
Jawaban:
Anda dapat melakukan perbandingan baris-bijaksana di PostgreSQL dengan konstruktor baris . Saya menduga ini akan bekerja dengan bidang geometri tapi saya belum mencobanya.
Diberikan dua tabel di mana fitur yang cocok memiliki bidang id yang sama di masing-masing Anda dapat melakukan sesuatu seperti:
Pembaruan: Ini berfungsi dengan bidang geometri dalam pengujian saya.
Pembaruan 2: Berikut adalah contoh yang lebih lengkap berdasarkan kriteria Anda.
Tabel: t1 (id, att1, att2, geom) t2 (id, att1, att2, geom)
Itu akan memberi Anda apa yang Anda cari. Anda mungkin ingin mengubah klausa 'tidak ada' menjadi 'tidak ada' untuk kinerja yang lebih baik.
sumber
Fungsi
ST_Equals(geometryA, geometryB)
mengembalikan TRUE jika mereka secara spasial sama.sumber