[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