¿Cuál es la mejor manera de hacer geocodificación inversa con PostGIS?

13

¿Hay una manera de hacer geocodificación inversa con PostGIS? Hay mucha información en la Web, pero me pareció muy confusa ...

He importado datos de osm en mi propia base de datos de Postgres con 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.

    
pregunta Joaquín M 11.08.2011 - 18:54

2 respuestas

13

Finalmente, entiendo la forma de geocodificar e invertir geocodificación 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 las bases de datos que se han importado desde OSM. Por lo tanto, no tiene que crear ningún procedimiento almacenado para la geocodificación inversa y la geocodificación. 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.

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; 
    
respondido por el Joaquín M 24.08.2011 - 19:57
4

El geocodificador tigre PostGIS 2.0 tiene un geocodificador inverso que utiliza datos de Tigre. El geocodificador se instalará correctamente en PostGIS 1.5 8.4+ o superior.

Si estás en los EE. UU., podría ser el más fácil de usar, ya que está empaquetado como funciones plpgsql.

enlace http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html

    
respondido por el LR1234567 23.08.2011 - 21:15

Lea otras preguntas en las etiquetas