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)/1000>1.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)/1000>1.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

Répondre à