Page 1 sur 1

Extraction données OSM

Publié : jeu. avr. 27, 2017 11:37 am
par Thom
Bonjour à tous,

Je souhaite obtenir un data set avec les points de map OSM (commerces, écoles ...).

Il me faut : id / longitude / latitude / amenity / brand / shop / source / name

Merci par avance de votre aide,

Thomas

Re: Extraction données OSM

Publié : ven. avr. 28, 2017 9:36 am
par cquest
Le plus simple c'est d'utiliser l'overpass-API via overpass-turbo

Exemple pour les écoles: http://overpass-turbo.eu/s/oGf

Code : Tout sélectionner

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“amenity=school in bordeaux”
*/
[out:json][timeout:300];
// fetch area “bordeaux” to search in
{{geocodeArea:bordeaux}}->.searchArea;
// gather results
(
  // query part for: “amenity=school”
  node["amenity"="school"](area.searchArea);
  way["amenity"="school"](area.searchArea);
  relation["amenity"="school"](area.searchArea);
);
// print results
out center;
le "out center" sort une latitude/longitude unique pour les POI qui sont surfaciques.

Il suffit de changer le "geocodeArea:bordeaux" en "geocodeArea:xxx" pour récupérer des données ailleurs.

Re: Extraction données OSM

Publié : mar. mai 02, 2017 10:03 am
par Thom
Salut,

Merci pour ta réponse.

Je vois qu'après avoir fait les modifs, la carte s'est bien ajusté à ma région, en l’occurrence la gironde.

Comment faire pour exporter ce data en CSV maintenant ?

Encore Merci :)

Thomas

Re: Extraction données OSM

Publié : mar. mai 02, 2017 10:22 am
par Thom
Le data set obtenu ne me donne le résultat que pour les écoles alors qu'il me faut l'ensemble des points d'OSM : centres sportifs, hôpitaux ....

Est ce que tu peux m'expliquer comment adapter le code stp ? :)

Thomas

Re: Extraction données OSM

Publié : mar. mai 02, 2017 3:54 pm
par cquest
"L'ensemble des points d'OSM" c'est un peu vague ou alors tu va avoir toutes les données OSM qui couvrent sûrement des thématiques qui ne te sont pas utiles...

les tags amenity=* vont regrouper les services (écoles, hopitaux, police, mairie, etc)
shop=* les commerces
leisure=* ce qui touche aux loisirs, sports

Donc remplacer dans la requête "amenity"="school" par "amenity" va tout remonter sur cette thématique et pas que les écoles, etc...

Re: Extraction données OSM

Publié : mar. mai 02, 2017 4:02 pm
par Thom
Yes c'est ce que j'ai fait et ça a fonctionné. :)

Par contre, ça me sort un fichier JSON impossible à convertir en CSV car trop lourd.

Et quand je remplace [out:json] par [out:csv], le code ne fonctionne plus :/

Merci pour ton aide,

Thomas

Re: Extraction données OSM

Publié : mar. mai 02, 2017 11:05 pm
par cquest
avec out:csv, on peut choisir les champs qu'on veut dans les colonnes du csv.

Voir la doc d'overpass... http://wiki.openstreetmap.org/wiki/Over ... _.28out.29

Re: Extraction données OSM

Publié : mer. mai 03, 2017 10:41 am
par Thom
Ok, merci pour le lien.

Tu peux m'aider à corriger mon code stp ?

Le voici :

Code : Tout sélectionner

[out:csv(::id,amenity,name,"contact:website",brand,source,::type,::lon,::lat,::count;true;"|")];
  area[name="Gironde"]->.a;
  ( node(area.a)[amenity];
    way(area.a)[amenity];
    rel(area.a)[amenity];
	node(area.a)[shop];
    way(area.a)[shop];
    rel(area.a)[shop];
 	node(area.a)[leisure];
    way(area.a)[leisure];
    rel(area.a)[leisure];
  );
  out;
out count;
/*

Comment je fais pour l'exporter en CSV ? Quand je fais export, il n'est proposé que les formats JSON ...
Normal que la carte ne s'adapte pas en fonction et ne se focus pas sur la gironde ?