最後に、PostGISデータベースでジオコードとリバースジオコードを行う方法を理解しました。ポイントに近いジオメトリタイプを見つけるストアドプロシージャを作成しました。このストアドプロシージャは、距離関数を使用して最も近いポイントを取得します。その後、このストアドプロシージャを呼び出すRESTful APIを作成して、逆ジオコーディングリクエストを解決しました。
間違っている場合は修正してください。しかし、NominatimプロジェクトがOSMからインポートされたデータベース用のAPIを作成することを理解しました。したがって、逆ジオコーディングおよびジオコーディング用のストアドプロシージャを作成する必要はありません。また、ウェブを介してリクエストを解決するためにウェブサービスを作成する必要はありません。
これが誰かを助けることを願っています。
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;