[OSM-dev-fr] requete pour trouver un way qui intersecte plusieurs communes

Vincent de Château-Thierry vdct at laposte.net
Sam 9 Mai 13:28:08 UTC 2015


Bonjour,

Le 08/05/2015 12:24, didier2020 a écrit :
> voila c'est dans le titre ...
>
> depuis que je "banote" j'ai remarqué plusieur fois :
> un nom est mis sur une voie mais comme celle-ci n'est pas découpée,
> ce nom est erroné sur la commune voisine.
>
> donc
> le but est de trouver l'id d'un way
> de type route (primary, secondary,unclassified, ...)
> qui est "long" => tri decroissant par la longueur
> qui a un nom
> qui a une intersection avec au moins 3 communes
> => c'est la que je coinse !
>
> etape suivante
> si que 2 il faudrait connaitre la longueur sur les 2... pour avoir une
> longueur significative (2km,1km par exemple)

Le souci à corriger peut commencer avec un way (pas forcément long) qui 
est à cheval sur 2 communes, dès lors qu'il croise la limite de commune 
plutôt que d'être confondu avec elle.

Tu es dans quel environnement technique pour ça : une BD PostGIS ? En 
supposant que oui, ta recherche revient à détecter les ways ayant 
certains de leurs points strictement inclus dans un polygone "limite de 
commune" et d'autres points dans une autre commune, toujours en stricte 
inclusion, donc pas superposés à la limite.
Une manière d'approcher le résultat si tu as les ways et polygones sous 
la main :
SELECTion de l'ID du way, et du code INSEE du polygone admin 8 dans 
lequel est inclus le 1er point du way,
UNION
SELECTion de l'ID du way, et du code INSEE du polygone admin 8 dans 
lequel est inclus le dernier point du way

Ça va te sortir une liste où, pour un way inclus dans une seule commune, 
tu auras une seule ligne en sortie (vu que le UNION dédoublonne). Ce qui 
va t'intéresser c'est les ways pour lesquels tu as 2 lignes qui sortent 
: ils sont à cheval sur 2 communes au moins.

Ca ne gère pas tout, notamment les cas où le way commence et finit dans 
la même commune mais fait un détour par une commune voisine. Mais ça 
devrait permettre de dégrossir.

Pour le 1er et le dernier point des ways tu as ST_StartPoint et 
ST_EndPoint tous cuits.

vincent



Plus d'informations sur la liste de diffusion dev-fr