Cara Melakukan Geocode pada Kota

8

Saya tahu bahwa saya bisa memanggil salah satu dari sejumlah API geocoding untuk melakukan ini untuk saya. Ini lebih dari sekadar rasa ingin tahu.

Dengan mengesampingkan itu, bagaimana seseorang (seperti Google) mengubah nama kota menjadi garis lintang dan bujur? Dari bermain-main dengan Google Maps, tampaknya sebagian besar waktu sebuah kota diarahkan ke daerah pusat kota, tetapi tampaknya tidak ada alasan mengapa satu sudut jalan dipilih di sudut jalan lainnya.

Saya hanya ingin tahu algoritma apa yang akan digunakan oleh penyedia layanan geocoding untuk melakukan tindakan seperti itu?

Jason Whitehorn
sumber

Jawaban:

5

Penempatan label sering dirancang untuk meningkatkan keterbacaan peta daripada didorong oleh data secara langsung: sering kali perpindahan kartografi dilakukan pada geometri asli untuk meningkatkan keterbacaan peta. 41Latitude memiliki artikel hebat tentang penempatan label kota yang mungkin menarik bagi Anda.

USGS GeoNames alias GNIS (gazette domain publik yang umum digunakan oleh eg Geonames.org, Wikipedia, OpenStreetMap) memberikan catatan ini :

... Pedoman untuk mendigitalkan fitur areal mensyaratkan bahwa koordinat utama diambil di pusat, tetapi lokasi pusat kota besar terkadang agak subyektif.

Jika Anda ingin secara algoritme memilih pusat kota, Anda dapat menggunakan centroid poligon yang menggambarkan batas kota, atau mungkin sesuatu yang lebih canggih seperti menggunakan pusat bentuk alfa .

scw
sumber
Apakah ini benar-benar dilakukan dengan menghitung centroid - dalam kenyataan? ... Anda benar tentang pelabelan, tapi itu bukan pertanyaannya.
underdark
Karena kota bukan fenomena titik, penempatan label adalah penggunaan umum dari lokasi geocode tunggal pada skala besar dan menengah, dan pada skala kecil presisi kurang penting.
scw
Bukankah yang Anda maksud adalah skala kecil dan menengah? (peta dunia = skala kecil, peta kota = skala besar)
Sean
@Sean ya, salah ketik dari menulis ulang; terima kasih untuk informasi lebih lanjut
scw
3

Saya ragu ada algoritma universal untuk ini. Penyedia geocoding membeli data alamat mereka dari beberapa vendor. Vendor itu - atau siapa pun yang mengumpulkan data - hanya memutuskan di mana 'pusat kota' (berdasarkan pengetahuan mereka tentang area).

underdark
sumber
0

Ini mungkin bukan jawaban yang benar-benar Anda cari, tetapi bisa menjadi solusi alternatif (dinilai oleh ahli statistik):

Jika Anda mengetahui geocode dari beberapa kota dan juga mengetahui matriks jarak di antara kota-kota tersebut, Anda dapat melakukan mis. MDS untuk menghitung geocode dari masing-masing kota berdasarkan jarak. Beberapa geocode hanya diperlukan untuk mendapatkan "atas" dan "bawah" peta karena MDS akan menggambar peta kota Anda dengan sangat tepat :)

Tetapi kembali ke pertanyaan: yang benar-benar bagus! Saya pasti dapat menghitung garis lintang dan bujur di sebuah kota dengan mudah dengan bantuan geocode rumah yang terletak di sudut jalan, tetapi tidak tahu persis bagaimana seseorang dapat menghitung geocode kota tanpa mengetahui misalnya matriks jarak yang ditunjukkan di atas.

Saya berasumsi google (dan lain-lain) hanya membeli peta dari mereka yang memilikinya (seperti yang dilakukan di pasty pasti di beberapa tempat, lihat telur artikel ini dari cnet), atau mereka harus mengatasinya dengan melakukan perjalanan semua situs yang bisa mengkonsumsi banyak sumber daya.

daroczig
sumber
0

Di sini, di Geocode.Farm , kami memiliki data batas disimpan dan kemudian menggunakan algoritma yang mengikat untuk membuat kotak atau lingkaran (tergantung pada bentuk batas). Pusat kemudian dihitung dan itulah yang kami gunakan untuk koordinat yang dikembalikan.

Penafian : Saya bekerja untuk Geocode Farm

Geocode. Staf Pertanian
sumber