banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Tue 20 July 2010 08:44

seb.49
Participant occasionnel
Date d'inscription: 5 Jun 2009
Messages: 19

[OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Bonjour,

Je tente de faire du reverse geocoding local avec des données OSM.

Pour ce faire, j'ai récupérer le fichier osm de l'ile de france chez geofabrik
et je l'ai importé dans une base postgis avec osm2pgsql

J'arrive avec cette requete

Code:

select name, astext(ST_Transform(st_centroid(way),4326)) as milieu, 
st_distance(way, st_geomfromtext('POINT(250553.832326824 6242745.39205004 )', 900913)) as dist,
*
from planet_osm_line 
order by dist
limit 10;

à récupérer dans l'ordre croissant de distance, la liste des rues proches d'un point donné.

Je ne parviens pas à obtenir les villes et les CP

Merci d'avance pour votre aide

Hors ligne

 

#2 Tue 27 July 2010 09:06

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: [OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Bonjour,

La commune peut être retrouvé via la table planet_osm_polygon en filtrant les données sur la colonne admin_level = '4' (à vérifier).

Code:

SELECT l.name, astext(ST_Transform(st_centroid(l.way),4326)) as milieu, 
st_distance(l.way, st_geomfromtext('POINT(250553.832326824 6242745.39205004 )', 900913)) as dist, p.name
*
FROM planet_osm_line AS l, planet_osm_polygon AS p
WHERE admin_level='4' AND st_contains(p.way,st_geomfromtext('POINT(250553.832326824 6242745.39205004 )', 900913))
ORDER BY dist
LIMIT 10;

Par contre à ta place je créerai une table plus propre avec les colonnes id, name_street, name_ville, way (celle de la rue).

Puis tu fait une requête en réalisant un buffer autour de ton point et tu récupères toutes les rues qui intersect ce buffer. Tu obtiendras des lignes (ie des rues) avec les noms de la rue et de la ville de la rue et non la ville où se trouve le point.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Tue 27 July 2010 09:14

seb.49
Participant occasionnel
Date d'inscription: 5 Jun 2009
Messages: 19

Re: [OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Merci beaucoup cest parfait. Par contre cest admin_level = 8 je crois.

Y a t il moyen d avoir les numéros dans les rues soit directement par requete si ca existe ou pour par extrapolation. Mais dans ce dernier cas, je ne sais pas trop comment partir.

Hors ligne

 

#4 Tue 27 July 2010 09:54

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: [OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Bonjour,

Les données ne sont pas complète à mon avis. Pour l'extrapolation tu as les fonctions linear referencing : http://postgis.refractions.net/document … eferencing

Mais dans ce cas il faut connaitre la longueur de la rue : http://postgis.refractions.net/document … Point.html

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Wed 28 July 2010 13:49

seb.49
Participant occasionnel
Date d'inscription: 5 Jun 2009
Messages: 19

Re: [OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Merci je vais regarder tout ca

Hors ligne

 

#6 Mon 10 November 2014 23:21

Achref_geo
Participant actif
Date d'inscription: 19 Feb 2012
Messages: 107

Re: [OSM][osm2pgsql]Reverse geocoding, j'ai la rue mais pas la ville

Bonjour,

Permettez moi de réouvrir le sujet, je viens d'importer des données .osm dans une base Postgis avec osm2pgsql, mais en essayant d'exécuter la même requêtes citée au dessus j'obtiens toujours ce message :

Code:

ERROR:  transform: couldn't project point (1.10411e+006 4.41371e+006 0): failed to load NAD27-83 correction file (-38)
HINT:  PostGIS was unable to transform the point because either no grid shift files were found....

J'ai bien compris qu'il s'agit de la bibliothèque Proj4 et du répertoire NAD manquant, mais en suivant la documentation je me trouve perdu. Merci de me préciser les étapes à suivre afin de compiler correctement Proj4.

A+

Hors ligne

 

Pied de page des forums

Powered by FluxBB