Existe uma maneira de fazer geocodificação reversa com o PostGIS? Há muita informação na Web, mas achei muito confusa ...
Importei dados osm para o meu próprio Postgres com o banco de dados PostGIS. Agora eu quero fazer geocodificação e reverter a geocodificação com meu banco de dados. Não sei se existem alguns procedimentos armazenados ou um projeto em algum lugar que cuida do meu problema.
O próximo passo que eu quero fazer é criar um serviço da Web que possa lidar com esse tipo de solicitação, mas essa é outra questão.
postgis
reverse-geocoding
Joaquín M
fonte
fonte
Respostas:
Finalmente, entendo a maneira de fazer geocode e inverter geocode com meu banco de dados PostGIS. Eu fiz um procedimento armazenado que encontra tipos de geometria que estão próximos de um ponto. Este procedimento armazenado usa a função de distância para obter os pontos mais próximos. Depois disso, criei uma API RESTful que chama esse procedimento armazenado para resolver as solicitações de geocodificação reversa.
Corrija-me se estiver errado, mas entendi que o projeto Nominatim cria uma API para bancos de dados que foram importados do OSM. Portanto, você não precisa criar nenhum procedimento armazenado para geocodificação reversa e geocodificação. Além disso, você não precisa fazer nenhum serviço da web para resolver as solicitações pela web.
Espero que isso ajude alguém.
fonte
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;
O geocoder PostGIS 2.0 tiger possui um geocoder reverso utilizando dados Tiger. O geocoder será instalado corretamente no PostGIS 1.5 8.4+ ou superior.
Se você estiver nos EUA, pode ser o mais fácil de usar, pois está tudo empacotado como funções plpgsql.
http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html
fonte