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.
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;