J'ai sorti un CSV du résultat sur la France entière: http://osm105.openstreetmap.fr/~cquest/routes.csv
92750 cas à vérifier... ;) Le 15 mai 2015 15:50, <didier2...@free.fr> a écrit : > - j'ai compris depuis ... > 1,2,3,4,5 correspond aux select (id... km) > mais sans les remettre - je connaissais pas cette syntaxe > > - j'ai ajouté having count(*)>1 > ça fait moins de lignes > > - du coup c'est meme pas long pour la france ! > > encore merci christian ! > > > ----- Mail d'origine ----- > De: Christian Quest <cqu...@openstreetmap.fr> > À: Discussions développeur OSM en français <dev-fr@openstreetmap.org> > Envoyé: Fri, 15 May 2015 14:04:36 +0200 (CEST) > Objet: Re: [OSM-dev-fr] requete pour trouver un way qui intersecte > plusieurs communes > > le group 5 c'est pour la longueur du way, vu qu'il n'y a pas d'aggregation > dessus, il faut le mettre dans le group by. > > La requête a besoin d'un index sur le ref:INSEE pour être rapide... c'est > le cas sur osm105 où j'ai testé ça. > > Le 15 mai 2015 10:43, didier2020 <didier2...@free.fr> a écrit : > > > cool merci, > > > > group by 1,2,3,4,5 ? > > goup by je vois mais c a 5 cela correspond à ? > > > > il me manquait les codes insee > > pour trouver sur quelle commune etait le VRAI "name" > > avec http://cadastre.openstreetmap.fr/fantoir/ > > (c'est pas toujours évident) > > > > la majorité des "erreurs" sont sur les RD > > - name avec la valeur du ref > > - name mis sans découpage du way sur l'emprise de la rue > > - split d'un way sans enlever le name > > > > > > > > Le vendredi 15 mai 2015 à 09:32 +0200, Christian Quest a écrit : > > > Voilà de quoi faire: > > > > > > select h.osm_id, h.highway, h.name, h.ref, > > > st_length(st_transform(h.way,2154))/1000 as km, count(*) as nb, > > > string_agg(c.tags->'ref:INSEE',' ' order by c.tags->'ref:INSEE') as > > > insee from planet_osm_line h join planet_osm_polygon c on (c.boundary > > > is not null and c.admin_level='8' and c.tags ? 'ref:INSEE' and > > > st_intersects(c.way,h.way)) where h.highway is not null and > > > c.tags->'ref:INSEE' like '94%' and h.name is not null group by > > > 1,2,3,4,5 order by nb desc, km desc; > > > > > > > > > ça sort ça pour le 94 en 1s... > > > > > > osm_id | highway | name | > > > ref | km | nb | insee > > > > > > -----------+-------------+------------------------------------------+------+------------------+----+------------------------- > > > 28668562 | track | Chemin du Vieux Colombier | > > > | 2.91488193057937 | 4 | 94004 94048 94070 94071 > > > 60738141 | path | Ligne de Paris-Bastille à Marles-en-Brie | > > > | 3.02463682219015 | 3 | 94047 94048 94075 > > > 24913577 | track | Chemin du Parc aux Boeufs | > > > | 2.44325866723766 | 3 | 94048 94060 94071 > > > 43369126 | track | Chemin du Poteau | > > > | 2.23332426743423 | 3 | 94060 94070 94071 > > > 43368301 | track | Chemin de Saint-Nicolas | > > > | 1.81601370313942 | 3 | 94053 94060 94071 > > > 4573532 | motorway | Autoroute du Soleil | > > > A 6a | 1.4758116729325 | 3 | 94016 94038 94076 > > > 161231620 | residential | Chemin des Boeufs | > > > | 1.27336749011341 | 3 | 94022 94028 94078 > > > 43368511 | track | Allée Dauphine | > > > | 1.26276853571814 | 3 | 94060 94070 94071 > > > 284745962 | primary | Avenue de Lattre de Tassigny | > > > N 19 | 1.12256190972095 | 3 | 94004 94048 94075 > > > 25150801 | motorway | Autoroute de l'Est | > > > A 4 | 1.004138777096 | 3 | 94015 94017 94079 > > > > > > > > > On peut virer les motorway ;) > > > > > > > > > > > > Le 10 mai 2015 11:49, didier2020 <didier2...@free.fr> a écrit : > > > j'ai commencé par dégrossir les erreurs avec : > > > > > > select osm_id,name > > > from planet_osm_line > > > where > > > highway is not null and > > > name is not null and > > > ( > > > upper(left(name,3)) = 'RUE' > > > or upper(left(name,6))='AVENUE' > > > or upper(left(name,5))='ALLEE' > > > or upper(left(name,6))='PLACE' > > > ) > > > and (ST_Length(ST_Transform(way,2154))/1000)>5.0 > > > > > > > > > Le samedi 09 mai 2015 à 15:28 +0200, Vincent de > > > Château-Thierry a > > > écrit : > > > > 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 > > > > > > > > _______________________________________________ > > > > dev-fr mailing list > > > > dev-fr@openstreetmap.org > > > > https://lists.openstreetmap.org/listinfo/dev-fr > > > > > > > > > > > > _______________________________________________ > > > dev-fr mailing list > > > dev-fr@openstreetmap.org > > > https://lists.openstreetmap.org/listinfo/dev-fr > > > > > > > > > > > > > > > -- > > > Christian Quest - OpenStreetMap France > > > _______________________________________________ > > > dev-fr mailing list > > > dev-fr@openstreetmap.org > > > https://lists.openstreetmap.org/listinfo/dev-fr > > > > > > > > _______________________________________________ > > dev-fr mailing list > > dev-fr@openstreetmap.org > > https://lists.openstreetmap.org/listinfo/dev-fr > > > > > > -- > Christian Quest - OpenStreetMap France > > > _______________________________________________ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > -- Christian Quest - OpenStreetMap France
_______________________________________________ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr