Есть ли способ сделать обратное геокодирование с PostGIS? В Интернете много информации, но я нашел ее очень запутанной ...
Я импортировал данные osm в свою собственную базу данных Postgres с PostGIS. Теперь я хочу сделать геокодирование и обратное геокодирование с моей базой данных. Я не знаю, есть ли какие-то хранимые процедуры или проект, который решает мою проблему.
Следующий шаг, который я хочу сделать, - создать веб-сервис, который может обрабатывать такие запросы, но это другой вопрос.
postgis
reverse-geocoding
Хоакин М
источник
источник
Ответы:
Наконец, я понимаю способ сделать геокод и обратный геокод с моей базой данных PostGIS. Я сделал хранимую процедуру, которая находит типы геометрии, которые находятся рядом с точкой. Эта хранимая процедура использует функцию расстояния для получения ближайших точек. После этого я создал RESTful API, который вызывает эту хранимую процедуру для разрешения обратных запросов геокодирования.
Поправьте меня, если я ошибаюсь, но я понял, что проект Nominatim создает API для баз данных, которые были импортированы из OSM. Таким образом, вам не нужно создавать какие-либо хранимые процедуры для обратного геокодирования и геокодирования. Также вам не нужно создавать какие-либо веб-сервисы для разрешения запросов через Интернет.
Надеюсь, это кому-нибудь поможет.
источник
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 имеет обратный геокодер, использующий данные Tiger. Геокодер будет хорошо установлен на PostGIS 1.5 8.4+ или выше.
Если вы находитесь в США, это может быть самым простым в использовании, поскольку все это упаковано как функции plpgsql.
http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html
источник