Existe-t-il un moyen de faire du géocodage inversé avec PostGIS? Il y a beaucoup d'informations sur le Web, mais je les ai trouvées très déroutantes ...
J'ai importé des données osm dans ma propre base de données Postgres avec PostGIS. Maintenant, je veux faire du géocodage et du géocodage inversé avec ma base de données. Je ne sais pas s'il existe des procédures stockées ou un projet quelque part qui prend en charge mon problème.
La prochaine étape que je veux faire est de créer un service Web qui peut gérer ce type de demandes, mais c'est une autre question.
postgis
reverse-geocoding
Joaquín M
la source
la source
Réponses:
Enfin, je comprends la façon de faire du géocodage et du géocodage inversé avec ma base de données PostGIS. J'ai créé une procédure stockée qui trouve des types de géométrie proches d'un point. Cette procédure stockée utilise la fonction de distance pour obtenir les points les plus proches. Après cela, j'ai créé une API RESTful qui appelle cette procédure stockée pour résoudre les demandes de géocodage inversé.
Corrigez-moi si je me trompe, mais j'ai compris que le projet Nominatim crée une API pour les bases de données importées d'OSM. Vous n'avez donc pas à créer de procédure stockée pour le géocodage inverse et le géocodage. De plus, vous n'avez pas à effectuer de service Web pour résoudre les demandes via le Web.
J'espère que cela aide quelqu'un.
la source
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;
Le géocodeur de tigre PostGIS 2.0 possède un géocodeur inversé utilisant les données de Tiger. Le géocodeur s'installera correctement sur PostGIS 1.5 8.4+ ou supérieur.
Si vous êtes aux États-Unis, c'est peut-être le plus facile à utiliser car il est tout empaqueté en tant que fonctions plpgsql.
http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html
la source