Saya memiliki vektor poligon dan saya ingin cepat mendapatkan centroid poligon ini untuk dimasukkan dalam dokumen teks. Saya bekerja dengan QGIS. Saya mencari pertanyaan lain dan meskipun beberapa agak dekat mereka tidak menjawab pertanyaan saya.
Idealnya, koordinat centroid akan berada di tabel atribut poligon dan saya hanya bisa menyalin dan menempelkan koordinat.
Saya tidak ingin harus membuat file vektor titik terpisah yang mewakili centroid dan kemudian menemukan koordinat ini dan menyalin dan menempelkannya.
qgis
attribute-table
centroids
David
sumber
sumber
Jawaban:
Centroid adalah definisi per layer titik dan bukan poligon. Untuk itu Anda perlu membuat layer baru, yang mudah seperti pie di QGIS 1.8 dan versi yang lebih tinggi.
Setelah itu Anda bisa membuat gabungan spasial untuk menambahkan kolom centroid ke poligon dan menghapus layer titik lagi.
sumber
Sungguh, membuat shapefile baru adalah salah satu opsi termudah Anda. Namun, Anda tidak perlu menyalin dan menempelkan koordinat. Melakukan hal ini:
Atau Anda harus mengimpor data Anda ke PostGIS dan kemudian iterate melalui poligon, menggunakan fungsi ST_Centroid dan menyimpan hasilnya di bidang baru. Pekerjaan yang terlibat hampir sama tetapi opsi kedua berarti Anda tidak memiliki file titik centroid yang terpisah.
sumber
Jiwa yang lebih kuat untuk jawaban mike:
long = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '(-?\\d+\\.?\\d*) -?\\d+\\.?\\d*')) lat = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '-?\\d+\\.?\\d* (-?\\d+\\.?\\d*)'))
sumber
Bagaimana kalau menggunakan ini di 2.2 Field Calculator?
Bidang panjang = substr (geomToWKT (centroid ($ geometry)), 7, 12)
Bidang lat = substr (geomToWKT (centroid ($ geometry)), strpos (geomToWKT (centroid ($ geometry)), '') +2, 12)
Tampaknya ini dibahas dalam 2.6 dengan opsi xmin xmin (centroid ($ geometry))
sumber
Saya baru saja menemukan posting ini hampir 5 tahun terlambat (!), Tapi inilah yang saya lakukan untuk menghitung poligon centroid di versi 2.18.14:
sumber
Kaitkan tabel titik sentroid dengan tabel poligon dan kemudian letakkan koordinat dengan nama dan bentuk poligon. Poligon tidak memiliki satu lat panjang di dalam dan dari dirinya sendiri
sumber
Datang melintasi pos ini dan sulit untuk mengikuti, menyarankan pembaruan:
Catatan: Ini akan menghitung garis lintang dan bujur dalam koordinat proyeksi Anda (yang mungkin meter). Jika Anda ingin koordinat dalam derajat desimal (dengan asumsi saya lakukan atau sebagian besar tidak dapat dipahami) simpan dulu layer di CRS ini: EPSG: 4326, WGS 84.
sumber
lon = ToReal (regexp_substr (geomToWKT (centroid ($ geometry)), '([\ s]')) lat = ToReal (regexp_substr (geomToWKT (centroid ($ geometry)), 's [)]'))
sumber