Saya agak baru di dunia GIS dan terutama PostGIS, jadi tolong permisi jika jawabannya tampak jelas ...
Saya ingin melakukan analisis pada sejumlah bangunan. Satu hal yang saya tertarik adalah permukaan fasad mereka bersama dengan orientasi masing-masing. Seperti yang diilustrasikan dalam gambar di bawah ini, saya ingin memiliki panjang dan orientasi (normal) semua tepi dalam serangkaian poligon. Dalam contoh saya hanya menyoroti satu permukaan.
Tabel hasil dapat terlihat seperti ini:
building_id | edge_id | orientation | edge_length
-------------------------------------------------
1 | 1 | 315 | 10.0
1 | 2 | 45 | 7.0
1 | ... | ... | ...
Namun, saya tidak yakin apakah ini cara yang cerdas untuk menyimpan hasil untuk diproses lebih lanjut (mis. Menghitung jarak dari tepi ke gedung berikutnya, dll.). Jadi pertanyaan saya ada dua:
- Apakah ada fungsi PostGIS yang efisien yang dapat menganalisis tepi poligon? Dalam hal tidak ada fungsi PostGIS asli saya atau akan tertarik pada pendekatan berbasis Python.
- Apa yang akan menjadi cara cerdas untuk menyimpan hasilnya dalam tabel PostGIS, karena poligon mungkin memiliki jumlah sisi yang berbeda?
Jawaban:
Kemarin saya tidak punya waktu untuk membuatnya secara detail ... Lihat solusi saya dalam 4 langkah:
Kueri terakhir memberi Anda id bangunan dengan gabungan spasial menggunakan st_touches. Semoga ini bisa membantu. Perbarui - Dalam qgis solusinya terlihat seperti ini:
sumber
UPDATE
harus melakukan trik. Sekali lagi terima kasih atas solusi hebat ini. Saya akan menunggu beberapa hari lagi jika jawaban lain muncul, sebelum menerimanya.ST_ForceRHR
? Jawaban ini sebenarnya tampak baik-baik saja.ST_ForceRHR
solusi, tetapi tidak berhasil. Akan berterima kasih atas petunjuk ... Saya mencobaST_Dump(ST_Boundary(ST_ForceRHR(the_geom)))