Apakah ada cara untuk melakukan geocoding terbalik dengan PostGIS? Ada banyak informasi di Web tetapi saya merasa sangat membingungkan ...
Saya telah mengimpor data osm ke Postgres saya sendiri dengan database PostGIS. Sekarang saya ingin membuat geocoding dan membalikkan geocoding dengan database saya. Saya tidak tahu apakah ada beberapa Prosedur Tersimpan, atau proyek di suatu tempat yang menangani masalah saya.
Langkah selanjutnya yang ingin saya lakukan adalah membuat layanan web yang dapat menangani permintaan semacam ini, tetapi itu adalah pertanyaan lain.
postgis
reverse-geocoding
Joaquín M
sumber
sumber
Jawaban:
Akhirnya, saya mengerti cara melakukan geocode dan membalikkan geocode dengan database PostGIS saya. Saya membuat prosedur tersimpan yang menemukan jenis geometri yang dekat dengan suatu titik. Prosedur tersimpan ini menggunakan fungsi jarak untuk mendapatkan titik terdekat. Setelah itu, saya membuat API RESTful yang memanggil prosedur tersimpan ini untuk menyelesaikan permintaan geocoding terbalik.
Perbaiki saya jika saya salah, tetapi saya mengerti bahwa proyek Nominatim membuat API untuk database yang telah diimpor dari OSM. Jadi, Anda tidak harus membuat prosedur tersimpan untuk membalik geocoding dan geocoding. Anda juga tidak perlu membuat layanan web apa pun untuk menyelesaikan permintaan melalui web.
Semoga ini bisa membantu seseorang.
sumber
CREATE OR REPLACE FUNCTION reverse_geocode(lat double precision, lon double precision) RETURNS text AS $BODY$ declare point geometry; rec record; geocode text; begin point := geomfromtext('POINT('||lat||' '||lon||')', 4326); select name, distance(way, point) as dist into rec from mapserverdb_point order by dist asc limit 1; geocode := rec.name; return geocode; end; $BODY$ LANGUAGE plpgsql;
PostGIS 2.0 tiger geocoder memiliki geocoder terbalik yang memanfaatkan data Tiger. Geocoder akan menginstal dengan baik pada PostGIS 1.5 8.4+ atau lebih tinggi.
Jika Anda berada di AS, mungkin yang paling mudah digunakan karena semuanya dikemas sebagai fungsi plpgsql.
http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html
sumber