Mesurer la longueur de voiries dans une commune ?

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
Philetjosie
Messages : 21
Inscription : ven. nov. 16, 2012 4:09 pm

Mesurer la longueur de voiries dans une commune ?

Message par Philetjosie » ven. mars 04, 2016 4:38 pm

Bonjour,
je voudrais savoir si vous connaissez une méthode simple ou bien documentée pour récupérer mesurer les longueurs de voirie (selon le type de voirie, en utilisant les tags OSM) dans une commune ?
Par exemple pour récupérér la longueur de bandes cyclables, de chemins, de routes, voir d'objets comme les stationnements vélos ?
Merci bien
Carte des aménagements cyclables du Pays de Gex: http://carte.apicy.fr et méthode pour faire de même chez vous: http://www.apicy.fr/carte/realiser-une-carte-similaire

Avatar de l’utilisateur
cquest
Messages : 1929
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Mesurer la longueur de voiries dans une commune ?

Message par cquest » ven. mars 04, 2016 6:24 pm

Simple et bien documenté... malheureusement je ne vois pas trop.

Il faut:
1) extraire d'OSM les données utiles
On peut prendre les exports shapefile de geofabrik sur la région en question ou bien passer par overpass-turbo.
Exemple: http://overpass-turbo.eu/s/eMQ

2) il faut faire quelques requêtes géospatiales avec soit un outil SIG comme QGis, soit directement dans une base de données (par exemple postgresql/postgis ou sqlite/spatialite) ou un script python couplé à shapely.
C'est la partie la moins simple et je ne connais pas de howto qui corresponde à cet usage bien précis.

Dans une base postgres/postgis avec les données OSM importées via osm2pgsql la requête ressemble à ça:

Code : Tout sélectionner

select c.tags->'ref:INSEE' as insee, c.name, r.highway, sum(st_length(st_transform(st_intersection(c.way,r.way),4326)::geography))/1000 as km
  from planet_osm_polygon cc
  join planet_osm_polygon c on (st_contains(cc.way,c.way) and c.tags ? 'ref:INSEE' and c.admin_level='8')
  join planet_osm_line r on (st_intersects(c.way,r.way) and r.highway is not null)
  where cc.osm_id=-2088975
  group by 1,2,3
  order by 1,3;
J'ai calculé le résultat pour la CC du Pays de Gex (ça prend 6s), il est disponible ici: http://osm13.openstreetmap.fr/~cquest/k ... de_gex.csv

Philetjosie
Messages : 21
Inscription : ven. nov. 16, 2012 4:09 pm

Re: Mesurer la longueur de voiries dans une commune ?

Message par Philetjosie » ven. mars 04, 2016 7:20 pm

Merci, je suis super impressionné ! Tu as fait ça en deux coups de cuillère à pot ! Je ne sais pas manipuler des bases de données dont tu parles, mais je vais essayer de me renseigner, en partant de tes infos.
En tout cas, le fichier CSV me sera bien utile, et ça me donne envie d'en savoir un peu plus.
Encore merci, et bon week-end.
Carte des aménagements cyclables du Pays de Gex: http://carte.apicy.fr et méthode pour faire de même chez vous: http://www.apicy.fr/carte/realiser-une-carte-similaire

GeorgeKaplan
Messages : 18
Inscription : dim. mars 06, 2016 12:44 pm

Re: Mesurer la longueur de voiries dans une commune ?

Message par GeorgeKaplan » lun. mars 07, 2016 10:38 am

Il y a plus simple encore : importer le résultat de la requête Overpass-Turbo (donnée par Christian) dans JOSM, sélectionner dans JOSM toutes les voies (Recherche > "type:way"), on voit en bas dans la barre d'état la somme des longueurs.

Avatar de l’utilisateur
cquest
Messages : 1929
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Mesurer la longueur de voiries dans une commune ?

Message par cquest » lun. mars 07, 2016 4:06 pm

C'est effectivement plus simple, mais le problème ce sont les voies qui traversent la commune et ont donc une longueur supérieur à ce qu'on souhaite...

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités