¿Hay alguna manera de hacer geocodificación inversa con PostGIS? Hay mucha información en la Web, pero me pareció muy confusa ...
He importado datos osm en mi propio Postgres con la base de datos PostGIS. Ahora quiero hacer geocodificación y geocodificación inversa con mi base de datos. No sé si hay algunos procedimientos almacenados o un proyecto en algún lugar que se ocupe de mi problema.
El siguiente paso que quiero hacer es hacer un servicio web que pueda manejar este tipo de solicitudes, pero esa es otra pregunta.
postgis
reverse-geocoding
Joaquín M
fuente
fuente
Respuestas:
Finalmente, entiendo la manera de hacer geocodificación y geocodificación inversa con mi base de datos PostGIS. Hice un procedimiento almacenado que encuentra tipos de geometría que están cerca de un punto. Este procedimiento almacenado utiliza la función de distancia para obtener los puntos más cercanos. Después de eso, he creado una API RESTful que llama a este procedimiento almacenado para resolver las solicitudes de geocodificación inversa.
Corríjame si me equivoco, pero he entendido que el proyecto Nominatim crea una API para bases de datos que se han importado de OSM. Por lo tanto, no tiene que crear ningún procedimiento almacenado para geocodificación y geocodificación inversa. Además, no tiene que realizar ningún servicio web para resolver las solicitudes a través de la web.
Espero que esto ayude a alguien.
fuente
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;
El geocodificador de tigre PostGIS 2.0 tiene un geocodificador inverso que utiliza datos de Tiger. El geocodificador se instalará bien en PostGIS 1.5 8.4+ o superior.
Si se encuentra en los EE. UU., Podría ser el más fácil de usar, ya que está empaquetado como funciones plpgsql.
http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html
fuente