Membuat layanan web geocoding / gazetteer?

14

Saya ingin menulis layanan web geocoding untuk silsilah di Jawa. Karena ini untuk silsilah, saya tidak perlu turun ke jalan. Saya hanya perlu pergi ke county.

Melihat data silsilah, nama yang salah eja sangat umum. Orang-orang juga menggunakan banyak singkatan non-standar. Misalnya untuk Baltimore County mungkin terlihat seperti:

  1. Baltimore
  2. Kabupaten Baltimore
  3. Baltimore Co
  4. Baltimore Cty
Jay Askren
sumber

Jawaban:

10

Saya tidak berpikir pertanyaan ini secara geografis, karena Anda hanya tertarik pada nama, jadi Anda mungkin ingin menanyakannya di Stack Overflow . Anda dapat menjawab pertanyaan Anda dengan dua informasi: negara bagian dan nama daerah yang diperbaiki. Untuk melakukan koreksi, Anda mungkin ingin menggunakan jarak Levenshtein ( contoh & implementasi java ) untuk mencocokkan data fuzzy dengan nilai yang dikoreksi.

scw
sumber
+1 Itu mungkin benar. Levenshtein sepertinya tempat yang baik untuk memulai dan sepertinya Postgres bahkan mendukungnya. Terima kasih.
Jay Askren
Saya pikir menggabungkan jarak Levenshtein dengan data dari Geonames ( geonames.org ) dapat bekerja untuk saya. Terima kasih.
Jay Askren
5

Layanan geocoding membutuhkan data geometri geografis, gazetteer terkait (untuk menangani penamaan dan nama alternatif), dan antarmuka pengguna (untuk memediasi pencarian). Untuk geocoder terbalik, Anda perlu menambahkan validator topologi. Untuk Java, open source JTS Topology Suite akan menjadi pilihan alami: http://www.vividsolutions.com/jts/jtshome.htm

Geometri wilayah untuk Amerika Serikat dapat ditemukan di Sensus: http://www.census.gov/geo/www/cob/co2000.html

Untuk memulai lembar berita, Dewan AS tentang Nama Geografis memiliki basis data: http://geonames.usgs.gov/

Membuat basis data gazetteer yang solid dan algoritma tenun yang mentolerir kecocokan perkiraan pencarian adalah bagian yang sulit.

Glennon
sumber
Algoritma adalah apa yang saya cari.
Jay Askren
Pertanyaan tentang algoritma kesamaan semantik mungkin memiliki lebih banyak responden di situs stackoverflow utama.
glennon
1

Google memiliki API yang bagus untuk geocoding , jika Anda dapat mengikuti persyaratan layanan mereka. Demo dasar dapat ditemukan di sini .

Menggunakan layanan mereka tunduk pada beberapa batasan, tetapi hasilnya intuitif, cepat, akurat dan akrab bagi sebagian besar pengguna. Ini akan memungkinkan Anda untuk fokus mengembangkan bagian silsilah dari layanan Anda.

Adam Matan
sumber
Saya benar-benar ingin meng-host semua yang ada di rumah dan tidak bergantung pada api dari luar.
Jay Askren
Jadi, Anda mencari DB geocoding berlisensi open source?
Adam Matan