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

2015-05-24 Par sujet didier2020
Le dimanche 24 mai 2015 à 15:47 +0200, Frédéric Rodrigo a écrit : 
 Bon ok on reste sur la France et un utilise la tag name en plus de highway.
 
 1. Je prend quoi pour filtrer sur par name ?
Rue Impasse Passage Ruelle Boulevard

j'exclus Allée  Avenue a cause des forets... 
 2. On peut faire exactement même chose avec highway.tags?'ref:INSEE' ? 
 voir même en une seule fois avec un OR ?
j'ai pas saisi ... 
 
 
3) ajouter aux highway a exclure
bridleway bus_guideway bus_stop steps viaferrata

 Voilà ce que j'ai :
 SELECT
id,
ST_AsText(intersection)
 FROM
 (
 SELECT
highway.id,
highway.linestring,
ST_ClosestPoint(highway.linestring, ST_Intersection(admin.linestring, 
 highway.linestring)) AS intersection
 FROM
relations
JOIN relation_members ON
  relation_members.relation_id = relations.id AND
  relation_members.member_type = 'W'
JOIN ways AS admin ON
  admin.id = relation_members.member_id AND
  ST_NPoints(admin.linestring)  1
JOIN ways AS highway ON
  -- les ways qui ne sont pas des autoroutes, qui ont un tag name et 
 qui sont  a 1km
  highway.tags?'highway' AND
  NOT highway.tags-'highway' IN ('construction', 'proposed', 
 'motorway', 'trunk', 'motorway_link', 'trunk_link', 'raceway') AND
  highway.tags?'name' AND
  ST_Length(highway.linestring, false)  1000 AND
  ST_NPoints(highway.linestring)  1 AND
  -- avec une intersection
  ST_Intersects(admin.linestring, highway.linestring)
 WHERE
  relations.tags?'type' AND
  relations.tags-'type' = 'boundary' AND
  relations.tags?'boundary' AND
  relations.tags-'boundary' = 'administrative' AND
  relations.tags?'admin_level' AND
  relations.tags-'admin_level' = '8'
 ) AS t
 WHERE
-- la taille de l'intersection par rapport a la longueur de la voie 
 est significative
ST_Line_Locate_Point(linestring, intersection) BETWEEN .1 AND .9
 ;
 
 
 
 Le 19/05/2015 18:16, Jérôme Amagat a écrit :
  liste des types de  highway dans routes.csv avec leur occurance :
 
 
  Il faut se limiter à certains. Moi je dirais, ceux là :
  primary, secondary, tertiary, unclassified, residential, track,living_street
  plus surement ceux la :
  primary_link, secondary_link, tertiary_link, service, road
  peut être :
  trunk, trunk_link, footway, cycleway, bridleway, pedestrian, path, steps
  Mais pas ceux là :
  motorway, motorway_link, construction, proposed, raceway, corridor,
  bus_stop, via_ferrata, bus_guideway, platform
 
  Apres, il y a aussi le problème des routes nommés qui dépassent
  seulement de quelques mètres ou dizaines de mètre sur la commune d'à
  coté ou celles qui longent plus ou moins la frontière en empiétant des 2
  cotés.
 
 
 
  Le 19 mai 2015 15:08, didier2020 didier2...@free.fr
  mailto:didier2...@free.fr a écrit :
 
  Le mardi 19 mai 2015 à 09:29 +0200, Frédéric Rodrigo a écrit :
   J'aimerais bien que l'analyse puisse être internationale.
   Filer sur un type de hygjway c'est possible ?
 
  pour la france je dirais
  
  'primary','secondary','primary_link','secondary_link','tertiary','tertiary_link',
  'residential', 'unclassified', 'service', 'road'
 
  mais je ne suis pas sur que cela vaut pour les autres pays...
 
   
Le 18 mai 2015 23:01, didier2020 didier2...@free.fr
  mailto:didier2...@free.fr a écrit :
   
aprés avoir corrigé un bon nombre de détection,
je ne pense pas que cela soit la géométrie de l'intersection
qui importe, mais plutôt la nature de la voie :
   
J'ai remarqué que les intersections complexes sont plus liés
aux écarts entre le tracé Bing vs tracé cadastre .
   
Faire une analyse sans faux positifs grace au premier mot du
name :
upper(split_part(tag-'name',' ', 1) in ()
   
Toujours a corriger
Rue , Place, Impasse
   
Mitigé :
Avenue - Allée (dans les forets)
   
Faux positifs :
Route
Chemin
Chaussée
   
Le lundi 18 mai 2015 à 21:54 +0200, Frédéric Rodrigo a
  écrit :
 Le 17/05/2015 11:08, didier2020 a écrit :
  1)
  colonne intersectioncomplexe ajoutée
  ( a prioris il y aura plus de faux positif si .t.)
  voir id=153318806 ou id=111737255

 Pour osmose, on prend ou on prend pas ?


on prend tout, le critere etant ailleur.
 
 
 
 ___
 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


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

2015-05-22 Par sujet didier2020
-l'analyse n'est pas du tout internationale, plutot pointue mais avec
peu de faux positif (pour ce que j'ai corrigé jusqu'a maintenant)
- il vaux mieux prendre des way qui sont longs, je pense que pour les
plus petits, d'autres analyses serait plus pertinente ou aurait le meme
effet de correction
(point adresse eloigné du way, associated street sans tag complémentaire
xx:left ou xx:right dont le way est sur plusieurs commune,
analyse/verification de bano ou autre ?)

select 
t.id,
-- a adapter a osmose
ST_AsText(ST_Centroid(t.linestring))
FROM
(
SELECT
   highway.id,
   highway.linestring,
   ST_ClosestPoint(highway.linestring,
ST_Intersection(admin.linestring,highway.linestring)) AS intersection
FROM
   relations
   JOIN relation_members ON
 relation_members.relation_id = relations.id AND
 relation_members.member_type = 'W'
   JOIN ways AS admin ON
 admin.id = relation_members.member_id AND
 ST_NPoints(admin.linestring)  1
   JOIN ways AS highway ON
 -- way qui sont  a 2km et
 -- qui ont le debut du name qui commence par RUE et certain type
de highway
 -- OU qui ont un code fantoir (avec ou sans name)
 highway.tags?'highway' AND
 (
   (
   highway.tags-'highway' IN
('primary','secondary','primary_link','secondary_link','tertiary','tertiary_link',
 'residential', 'unclassified', 'service', 'road') and
   highway.tags?'name' AND
   upper(left(highway.tags-'name',3))='RUE'
   )
   or highway.tags ? 'ref:FR:FANTOIR' 
 ) and
 ST_Length(highway.linestring, false)  2000 AND
 ST_NPoints(highway.linestring)  1 AND
 -- avec une intersection
 ST_Intersects(admin.linestring, highway.linestring)
WHERE
 relations.tags?'type' AND
 relations.tags-'type' = 'boundary' AND
 relations.tags?'boundary' AND
 relations.tags-'boundary' = 'administrative' AND
 relations.tags?'admin_level' AND
 relations.tags-'admin_level' = '8' AND
 relations.tags?'ref:INSEE'
) AS t
WHERE
   -- la taille de l'intersection par rapport a la longueur de la voie
est significative
   ST_Line_Locate_Point(linestring, intersection)  0.1 AND
   ST_Line_Locate_Point(linestring, intersection)  0.9
group by 1,2
;


___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-19 Par sujet Frédéric Rodrigo
J'aimerais bien que l'analyse puisse être internationale. Filer sur un type
de hygjway c'est possible ?
Le 18 mai 2015 23:01, didier2020 didier2...@free.fr a écrit :


 aprés avoir corrigé un bon nombre de détection,
 je ne pense pas que cela soit la géométrie de l'intersection
 qui importe, mais plutôt la nature de la voie :

 J'ai remarqué que les intersections complexes sont plus liés
 aux écarts entre le tracé Bing vs tracé cadastre .

 Faire une analyse sans faux positifs grace au premier mot du name :
 upper(split_part(tag-'name',' ', 1) in ()

 Toujours a corriger
 Rue , Place, Impasse

 Mitigé :
 Avenue - Allée (dans les forets)

 Faux positifs :
 Route
 Chemin
 Chaussée

 Le lundi 18 mai 2015 à 21:54 +0200, Frédéric Rodrigo a écrit :
  Le 17/05/2015 11:08, didier2020 a écrit :
   1)
   colonne intersectioncomplexe ajoutée
   ( a prioris il y aura plus de faux positif si .t.)
   voir id=153318806 ou id=111737255
 
  Pour osmose, on prend ou on prend pas ?
 
 
 on prend tout, le critere etant ailleur.
  ___
  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

___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-19 Par sujet Eric Sibert

Christian Quest cqu...@openstreetmap.fr a ?crit :


J'ai sorti un CSV du résultat sur la France entière:
http://osm105.openstreetmap.fr/~cquest/routes.csv

92750 cas à vérifier... ;)


Je crains qu'on passe encore à côté d'un certain nombre de cas à cause  
des redécoupages ultérieurs des voies:
- un premier contributeur, il y a longtemps (dans une galaxie  
lointaine...) a mis le nom sur le way qui parcours 10 communes
- un second contributeur a coupé le way en plusieurs morceaux pour  
mettre les ponts (sur la rivière formant la limite entre les communes)  
ou les limites de vitesses qui peuvent changer aux limites de communes


Je pense qu'il faudrait une analyse qui aille au delà d'un seul way et  
qui regroupe les ways consécutifs portant le même nom.


Je ne parle pas du troisième contributeur qui a renommé certains  
morceaux au milieu en constatant que ça ne collait pas au terrain :-p





Eric


___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-19 Par sujet didier2020
Le mardi 19 mai 2015 à 09:29 +0200, Frédéric Rodrigo a écrit :
 J'aimerais bien que l'analyse puisse être internationale.
 Filer sur un type de hygjway c'est possible ?

pour la france je dirais
'primary','secondary','primary_link','secondary_link','tertiary','tertiary_link',
 'residential', 'unclassified', 'service', 'road'

mais je ne suis pas sur que cela vaut pour les autres pays...

 
 Le 18 mai 2015 23:01, didier2020 didier2...@free.fr a écrit :
 
 aprés avoir corrigé un bon nombre de détection,
 je ne pense pas que cela soit la géométrie de l'intersection
 qui importe, mais plutôt la nature de la voie :
 
 J'ai remarqué que les intersections complexes sont plus liés
 aux écarts entre le tracé Bing vs tracé cadastre .
 
 Faire une analyse sans faux positifs grace au premier mot du
 name :
 upper(split_part(tag-'name',' ', 1) in ()
 
 Toujours a corriger
 Rue , Place, Impasse
 
 Mitigé :
 Avenue - Allée (dans les forets)
 
 Faux positifs :
 Route
 Chemin
 Chaussée
 
 Le lundi 18 mai 2015 à 21:54 +0200, Frédéric Rodrigo a écrit :
  Le 17/05/2015 11:08, didier2020 a écrit :
   1)
   colonne intersectioncomplexe ajoutée
   ( a prioris il y aura plus de faux positif si .t.)
   voir id=153318806 ou id=111737255
 
  Pour osmose, on prend ou on prend pas ?
 
 
 on prend tout, le critere etant ailleur.
  ___
  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 
 ___
 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


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

2015-05-19 Par sujet Philippe Verdy
Le 19 mai 2015 18:16, Jérôme Amagat jerome.ama...@gmail.com a écrit :

 liste des types de  highway dans routes.csv avec leur occurance :

 unclassified 20923
 residential 20637
 tertiary 16783
 track 11960
 secondary 10341
 primary 5270
 path 2762
 service 1325
 trunk 726
 footway 697
 cycleway 629
 road 139
 living_street 109
 motorway_link 70
 bridleway 68
 trunk_link 55
 pedestrian 55
 primary_link 46
 construction 26
 proposed 21
 raceway 19
 tertiary_link 19
 steps 16
 bus_guideway 15
 platform 14
 secondary_link 13
 corridor 3
 bus_stop 3
 via_ferrata 3
 unclassified;residential 1
 unclassified;tertiary 1

 Il faut se limiter à certains. Moi je dirais, ceux là :
 primary, secondary, tertiary, unclassified, residential, track,
 living_street
 plus surement ceux la :
 primary_link, secondary_link, tertiary_link, service, road


Pas road, ou alors juste comme un alias, synoryme de unclassified
(certains ont d'autres avis justement parce qu'ils inclus des voies non
routières dans les highways (par exemple les vias ferratas sont des voies
nécessitant un équipement sportif particulier et un entrainement
spécifique, sinon elles sont très dangereuses; et elles ne sont pas à
pratiquer seul).


 peut être :
 trunk, trunk_link, footway, cycleway, bridleway, pedestrian, path, steps.


OK pour steps, mais les bridleways sont davantage des restrictions d'accès
que des équipements très spécifiques. Sinon ce sont des allées piétonnes
comme les autres (et parfois aussi ouvert à certains véhicules privés
autorisés). On en trouve rarement dans les espaces publics, ce sont surtout
des chemins de service internes à des propriétés privées, clubs hippiques,
ou hippodromes. Partout ailleurs il n'y a pas d'espace réservé aux seuls
chevaux. D'ailleurs la plupart des bridleways (bon nombre en fait des
chemins de ferme) sont maintenant des chemins piétons classiques, et
ouverts aussi aux cyclistes, il n'y en a plus du tout dans les villes
actuelles.

D'ailleurs les voisins des fermiers se plaignent dans des animaux ou
troupeaux utilisent les rues et routes normales (alors qu'ils ne peuvent
plus faire autrement) et les bergers doivent demander des autorisations
spéciales pour fermer les routes le temps de déplacer les troupeaux sur la
voie publique. Et la gendarmerie fait vite dégager les cavaliers des routes
du réseau principal ou secondaire (les cavaliers ne sont admis que sur le
réseau tertiaire et dans des espaces limités des campagnes et forêts, et
dont les routes sont balisées pour avertir la présence de chevaux)



Mais pas ceux là :
 motorway, motorway_link, construction, proposed , raceway, corridor,
 bus_stop, via_ferrata, bus_guideway, platform


- proposed: OK, car on utilise plutôt le tag proposed:highway=*

- motorway: pas du tout d'accord (je ne vais pas être le seul, les
autoroutes ne sont pas que des voies rapides du réseau primaire, alors que
tu mets au donditionnel aussi les trunk !)

- raceway: on peut envisager que c'est en fait une route de service (accès
réservé à certains véhicules ayant une autorisation spéciale, interdit à
tous les autres; cependant on est en plus dans des terrains privés, bref la
législation devient floue à leur sujet, gormis les obligations relatives à
l'accueil du public et la protection du voisinage; sinon ces lieux
n'existent que temporairement le temps d'une course et rouverts ensuite à
la circulation normale); à voir donc plutôt ave la façon plus générale de
taguer les espaces sportifs (stades, etc... y compris pelouses, terrains
marqués pour certains sports, gradins/tribunes, batiments, et pistes de
toutes sortes: le circuit raceway est très secondaire dans tout ça et
soit c'est un highwya normal réservé le temps d'une course, soit c'est une
voie de service à suage sportif donc highway=service; service=raceway et
sport=car_racing ou autres sports motorisés)


 Apres, il y a aussi le problème des routes nommés qui dépassent
 seulement de quelques mètres ou dizaines de mètre sur la commune d'à coté
 ou celles qui longent plus ou moins la frontière en empiétant des 2 cotés.


Plus que la route seule, ce sont les propriétés longées et accessibles par
cette route qui posent le problème des adresses qui font déborder beaucoup
plus qu'on ne s'imagine le nom des voies, en incluant non seulement les
façades mais une large surface derrière, et ce n'est pas parce que les
occupants ont leur appartement du côté opposé à cette rue qu'il ne sont pas
à la même adresse, il peut même arriver que le bâtiment soit à cheval sur
la frontière communale et on peut se demander alors à quelle commune
revient tel appartement dans le même immeuble quand tous ses accès se font
uniquement d'un seul côté depuis la voirie publique qui est entièrement sur
une seule commune).

Le cas est plus fréquent dans les périphéries de villes assez grandes pour
avoir une banlieue, dans les zones commerciales et industrielles, où tel ou
tel entrepôt ou magasin peut se retrouver à cheval sur plusieurs communes.
Mais des 

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

2015-05-18 Par sujet didier2020

aprés avoir corrigé un bon nombre de détection,
je ne pense pas que cela soit la géométrie de l'intersection 
qui importe, mais plutôt la nature de la voie :

J'ai remarqué que les intersections complexes sont plus liés 
aux écarts entre le tracé Bing vs tracé cadastre .

Faire une analyse sans faux positifs grace au premier mot du name :
upper(split_part(tag-'name',' ', 1) in () 

Toujours a corriger
Rue , Place, Impasse

Mitigé :
Avenue - Allée (dans les forets)

Faux positifs :
Route 
Chemin
Chaussée

Le lundi 18 mai 2015 à 21:54 +0200, Frédéric Rodrigo a écrit : 
 Le 17/05/2015 11:08, didier2020 a écrit :
  1)
  colonne intersectioncomplexe ajoutée
  ( a prioris il y aura plus de faux positif si .t.)
  voir id=153318806 ou id=111737255
 
 Pour osmose, on prend ou on prend pas ?
 
 
on prend tout, le critere etant ailleur. 
 ___
 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


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

2015-05-17 Par sujet didier2020
1)
colonne intersectioncomplexe ajoutée
( a prioris il y aura plus de faux positif si .t.)
voir id=153318806 ou id=111737255
2)
la meme route decoupée en plusieurs morceaux
- 1 morceau etait un way de la frontiere entre 2 communes = pas dans
analyse = ok (39219738)
- 1 autre morceau avec une intersection avec encore une autre commune =
trouvé dans analyse = ok(107747493)

ce meme nom est bien présent dans fantoir :
591840060A
593660047V
594970200S

en ne mettant pas ref:FR:FANTOIR, le rapprochement est fait 
(points bleu)

= 
- l'analyse est ok
- la description actuelle dans osm permet de faire le rapprochement bano
(sans code fantoir)
- faut-il splitter ce way et lui attribuer un code fantoir par commune ?

--
l'analyse utilisée :
--

SELECT
   id,
   st_astext(intersection) as locosmose,
   count(*) as nbintersection,
   sum(anadm)0 as intersectioncomplexe

FROM
(
SELECT
   highway.id,
   highway.linestring,
   ST_ClosestPoint(highway.linestring,
ST_Intersection(admin.linestring,highway.linestring)) AS intersection,
   case
 when
GeometryType(ST_Intersection(admin.linestring,highway.linestring))='MULTIPOINT'
 then 1
 else 0 end as anadm
FROM
   relations
   JOIN relation_members ON
 relation_members.relation_id = relations.id AND
 relation_members.member_type = 'W'
   JOIN ways AS admin ON
 admin.id = relation_members.member_id AND
 ST_NPoints(admin.linestring)  1
   JOIN ways AS highway ON
 -- les ways qui ne sont pas des voies type autoroute ni des
raceway, qui ont un tag name et qui sont  a 1km
 highway.tags?'highway' AND
 NOT highway.tags-'highway' IN ('proposed', 'motorway', 'trunk',
'motorway_link', 'trunk_link','raceway') AND
 highway.tags?'name' AND
 ST_Length(highway.linestring, false)  1000 AND
 ST_NPoints(highway.linestring)  1 AND
 -- avec une intersection
 ST_Intersects(admin.linestring, highway.linestring) 
WHERE
 relations.tags?'type' AND
 relations.tags-'type' = 'boundary' AND
 relations.tags?'boundary' AND
 relations.tags-'boundary' = 'administrative' AND
 relations.tags?'admin_level' AND
 relations.tags-'admin_level' = '8' AND
 relations.tags?'ref:INSEE'
) AS t
WHERE
   -- la taille de l'intersection par rapport a la longueur de la voie
est significative
   ST_Line_Locate_Point(linestring, intersection)  0.1 AND
   ST_Line_Locate_Point(linestring, intersection)  0.9
group by 1,2
;


___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-16 Par sujet didier2020
j'ai bati un truc a partir de la requete de christian 
sur une base osmosis .

j'ai pas réussi a aggreger les communes - longueur du way dans la
commune.

Le samedi 16 mai 2015 à 11:42 +0200, Frédéric Rodrigo a écrit : 
 Le 15/05/2015 18:36, Christian Quest a écrit :
  Suite à cet échange et à une demande de didier2020, j'ai sorti un CSV
  des highway qui portent un nom et qui croisent plusieurs communes.
  Les motorway ont été retiré, et c'est trié par nombre de communes
  croisées, puis par kilométrage décroissant.
  La liste des codes INSEE des communes croisées est indiquée.
 
  C'est ici: http://osm105.openstreetmap.fr/~cquest/routes.csv
 
  A affiner pour une future analyse osmose ?
 
 Si vous avais une requête qui tourne sur base osmosis je prends.
 
 
 ___
 Talk-fr mailing list
 talk...@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/talk-fr



___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-16 Par sujet didier2020
c'est mieux avec la requete ...


Le samedi 16 mai 2015 à 16:25 +0200, didier2020 a écrit : 
 j'ai bati un truc a partir de la requete de christian 
 sur une base osmosis .
 
 j'ai pas réussi a aggreger les communes - longueur du way dans la
 commune.
 
 Le samedi 16 mai 2015 à 11:42 +0200, Frédéric Rodrigo a écrit : 
  Le 15/05/2015 18:36, Christian Quest a écrit :
   Suite à cet échange et à une demande de didier2020, j'ai sorti un CSV
   des highway qui portent un nom et qui croisent plusieurs communes.
   Les motorway ont été retiré, et c'est trié par nombre de communes
   croisées, puis par kilométrage décroissant.
   La liste des codes INSEE des communes croisées est indiquée.
  
   C'est ici: http://osm105.openstreetmap.fr/~cquest/routes.csv
  
   A affiner pour une future analyse osmose ?
  
  Si vous avais une requête qui tourne sur base osmosis je prends.
  
  
  ___
  Talk-fr mailing list
  talk...@openstreetmap.org
  https://lists.openstreetmap.org/listinfo/talk-fr
 

select 
 h.id,
 h.name as nameway,
 h.ref as refway,
 c.ref_insee as insee,
 ST_Length(st_intersection(c.polygon,h.wline),false)/1000 as km_in_com
from 
(
-- les ways qui ne sont pas des autoroutes, qui ont un tag name et qui sont  a 1km
select 
id,tags-'highway' as highway,tags-'name' as name,tags-'ref'as ref,linestring::geography as wline
from 
debugwithjosm.ways 
where
tags ? 'highway' and not tags-'highway' in ('proposed','motorway','trunk','motorway_link','trunk_link')
and tags ? 'name'
and ST_Length(linestring,false)/10001.00
) as h
join
(
-- les communes
SELECT
relations.id AS id,
relations.tags-'ref:INSEE' AS ref_insee,
ST_Polygonize(ways.linestring) AS polygon
FROM
debugwithjosm.relations
JOIN debugwithjosm.relation_members ON
relation_members.relation_id = relations.id AND
relation_members.member_type = 'W'
JOIN debugwithjosm.ways ON
ways.id = relation_members.member_id AND
ST_NPoints(ways.linestring)  1
WHERE
relations.tags?'type' AND
relations.tags-'type' = 'boundary' AND
relations.tags?'boundary' AND
relations.tags-'boundary' = 'administrative' AND
relations.tags?'admin_level' AND
relations.tags-'admin_level' = '8' and
relations.tags?'ref:INSEE'
GROUP BY
relations.id,
relations.tags-'ref:INSEE' ) as c
-- avec une intersection
on  st_intersects(c.polygon,h.wline)
where
--ST_Length(st_intersection(c.polygon,h.wline),false)/10001.0 and
-- la taille de l'intersection par rapport a la longueur de la voie est significative
ST_Length(st_intersection(c.polygon,h.wline),false)/ST_Length(h.wline)0.20
;
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-16 Par sujet Frédéric Rodrigo

Salut,

Voilà ce que j'en ai fait, regarde un peut les résultats et si tu peux 
l'améliorer. Il y a un bug avec les voies qui reviennent dans la commune 
d'origine, à voir si c'est est acceptable.


SELECT
  id
FROM
(
SELECT
  highway.id,
  highway.linestring,
  ST_ClosestPoint(highway.linestring, ST_Intersection(admin.linestring, 
highway.linestring)) AS intersection

FROM
  relations
  JOIN relation_members ON
relation_members.relation_id = relations.id AND
relation_members.member_type = 'W'
  JOIN ways AS admin ON
admin.id = relation_members.member_id AND
ST_NPoints(admin.linestring)  1
  JOIN ways AS highway ON
-- les ways qui ne sont pas des autoroutes, qui ont un tag name et 
qui sont  a 1km

highway.tags?'highway' AND
NOT highway.tags-'highway' IN ('proposed', 'motorway', 'trunk', 
'motorway_link', 'trunk_link') AND

highway.tags?'name' AND
ST_Length(highway.linestring, false)  1000 AND
ST_NPoints(highway.linestring)  1 AND
-- avec une intersection
ST_Intersects(admin.linestring, highway.linestring)
WHERE
relations.tags?'type' AND
relations.tags-'type' = 'boundary' AND
relations.tags?'boundary' AND
relations.tags-'boundary' = 'administrative' AND
relations.tags?'admin_level' AND
relations.tags-'admin_level' = '8' AND
relations.tags?'ref:INSEE'
) AS t
WHERE
  -- la taille de l'intersection par rapport a la longueur de la voie 
est significative

  ST_Line_Locate_Point(linestring, intersection)  0.1 AND
  ST_Line_Locate_Point(linestring, intersection)  0.9
;



Le 16/05/2015 16:26, didier2020 a écrit :

c'est mieux avec la requete ...


Le samedi 16 mai 2015 à 16:25 +0200, didier2020 a écrit :

j'ai bati un truc a partir de la requete de christian
sur une base osmosis .

j'ai pas réussi a aggreger les communes - longueur du way dans la
commune.

Le samedi 16 mai 2015 à 11:42 +0200, Frédéric Rodrigo a écrit :

Le 15/05/2015 18:36, Christian Quest a écrit :

Suite à cet échange et à une demande de didier2020, j'ai sorti un CSV
des highway qui portent un nom et qui croisent plusieurs communes.
Les motorway ont été retiré, et c'est trié par nombre de communes
croisées, puis par kilométrage décroissant.
La liste des codes INSEE des communes croisées est indiquée.

C'est ici: http://osm105.openstreetmap.fr/~cquest/routes.csv

A affiner pour une future analyse osmose ?


Si vous avais une requête qui tourne sur base osmosis je prends.


___
Talk-fr mailing list
talk...@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr







___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


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

2015-05-15 Par sujet Christian Quest
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


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

2015-05-15 Par sujet didier2020
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 Bœufs |
 | 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 

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

2015-05-15 Par sujet Christian Quest
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 

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

2015-05-15 Par sujet didier2020
- 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

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

2015-05-15 Par sujet Christian Quest
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

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

2015-05-10 Par sujet didier2020
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


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

2015-05-09 Par sujet didier2020
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.
 

ok (presque compris) en tout cas merci !
je vais essayer ca 
 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


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

2015-05-09 Par sujet Vincent de Château-Thierry

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


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

2015-05-08 Par sujet didier2020
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)

merci de vos suggestions
didier







___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr