Hitung titik tengah dari serangkaian koordinat lintang dan bujur

9

Saya punya serangkaian koordinat bujur dan lintang yang mewakili garis besar bangunan

misalnya

-0.5485381346101759,53.2285150736142
-0.5482220594232723,53.22842450827133
-0.5482298619861881,53.22841205254449

... (titik tengah tidak terdaftar) ...

-0.5483123769301657,53.22882101914848

Bagaimana saya bisa mengetahui titik tengahnya? Saya telah menemukan tutorial yang menunjukkan cara melakukannya jika Anda memiliki tiga koordinat (mis. Http://mathforum.org/library/drmath/view/68373.html ), tetapi dalam banyak kasus saya punya lebih dari tiga .

Terima kasih

whuber
sumber
2
Itu tergantung apa yang Anda maksud dengan "titik tengah" - maksud Anda centroid ?
3
Rekomendasi: coba sendiri, lalu minta bantuan ketika itu tidak benar - give me the answerpertanyaan biasanya tidak disukai di sini.

Jawaban:

8

Dengan koordinat yang berdekatan satu sama lain, Anda dapat memperlakukan Bumi sebagai datar secara lokal dan menemukan centroid seolah-olah mereka adalah koordinat planar. Maka Anda cukup mengambil rata-rata garis lintang dan rata-rata garis bujur untuk menemukan garis lintang dan garis bujur dari pusat massa.

Sunting: Seperti yang ditunjukkan oleh whuber, metode di atas tidak akan berfungsi kecuali bangunan tersebut adalah persegi panjang atau poligon biasa. Untuk bentuk acak, rumus di sini memberikan hasil yang benar.

murgatroid99
sumber
@murgatroid Pengamatan tentang tidak membutuhkan proyeksi adalah hal yang bagus. Sayangnya, rata-rata koordinat titik tidak memberikan pusat massa bangunan.
whuber
@whuber Terima kasih, saya memperbarui posting saya dengan metode yang benar.
murgatroid99
Bisakah Anda mendefinisikan "dekat satu sama lain"?
kev
4

Jika Anda ingin bagian tengah bangunan yang digariskan dengan poligon, maka jangan mengambil mean dari simpul. Ini jelas salah. Anda perlu menghitung centroid dari poligon itu sendiri. Untuk rumusnya, lihat

http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon

(Dan, saya setuju dengan poster sebelumnya: Anda dapat memperlakukan lintang dan bujur sebagai koordinat Cartesian karena bangunannya kecil dan jauh dari kutub dan dari garis tanggal internasional.)

cffk
sumber
+1 untuk memberikan batasan penting pada ruang lingkup perkiraan ini dan untuk menyediakan tautan ke rumus. BTW, ada asumsi halus (tapi benar) yang terlibat dalam rekomendasi terakhir: ada distorsi relatif jarak (yang dapat disembuhkan dengan mengalikan garis bujur dengan cosinus garis lintang), tetapi untuk tujuan menghitung centroid ini tidak apa-apa. (Untuk perhitungan terkait, seperti menemukan sudut, akan sangat berarti.)
whuber
Apakah teknik ini menjamin suatu titik DI DALAM poligon? Saya tidak tahu apa penggunaan terakhir dari data tersebut, tetapi beberapa kegunaan membutuhkan titik untuk berada di dalam. Dalam skenario itu, aritmatika berarti paling pasti tidak menjamin hasil (misalnya pusat aritmatika Kroasia bahkan tidak di negara itu)!
Tandai Irlandia
Tidak ada jaminan bahwa centroid poligon ada di dalam poligon (kecuali jika poligon itu cembung, tentu saja).
cffk
2

Konversi dari koordinat geografis ke geosentris, rata-rata vektor geosentris, lalu konversikan kembali ke geografis.

Paul Ramsey
sumber
1
Dalam sebagian besar aplikasi perhitungan ini tidak akan berarti karena sangat tergantung pada bagaimana bangunan diwakili. Misalnya, memadatkan segmen garis dapat mengubah jawabannya dengan baik tanpa mengubah tampilan bangunan sama sekali.
whuber
1

Sentroid dari banyak titik secara sederhana adalah rata-rata aritmatika dari masing-masing koordinat. Jadi simpulkan garis lintang dan bujur dan bagi dengan jumlah poin.


sumber
3
tidak jika poligon melewati garis waktu
Paul Ramsey
@Paul @tskuzzy Juga, resep ini tidak tepat: bangunan bukan himpunan simpulnya, itu adalah interior polyline tertutup yang dilacak oleh simpul tersebut.
whuber
0

Jika Anda bekerja pada rentang yang lebih besar, Anda membutuhkan interpolasi bola .


sumber
Sulit untuk melihat bagaimana itu akan membantu. Detail?
whuber