Extraction données OSM

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

Le plus simple c’est d’utiliser l’overpass-API via overpass-turbo

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

/*
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.

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 :slight_smile:

Thomas

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 ? :slight_smile:

Thomas

“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…

Yes c’est ce que j’ai fait et ça a fonctionné. :slight_smile:

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 :confused:

Merci pour ton aide,

Thomas

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/Overpass_API/Overpass_QL#Output_Format_.28out.29

Ok, merci pour le lien.

Tu peux m’aider à corriger mon code stp ?

Le voici :

[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 ?