OpenStreetMap
OpenStreetMap (OSM) est un projet qui a pour but de constituer une base de données géographiques libre du monde.
Site principal :
Outils dérivés
- http://map.meurisse.org : pour calculer des distances
- http://map.project-osrm.org : calcul d'itinéraire
- http://www.openrunner.com/
overpass turbo
Outil permettant de réaliser des requêtes sur le base de données OpenStreetMap :
Mode d'emploi :
- https://wiki.openstreetmap.org/wiki/FR:Overpass_turbo
- https://wiki.openstreetmap.org/wiki/FR:Overpass_API/Overpass_QL
Document très utile :
Ci-dessous, un exemple de code permettant d'identifier les éléments ayant la caractéristique "amenity=farm" :
/* This has been generated by the overpass-turbo wizard. The original search was: “"amenity"="farm" global” */ [out:json][timeout:25]; // gather results ( // query part for: “amenity=farm” node["amenity"="farm"]; way["amenity"="farm"]; relation["amenity"="farm"]; ); // print results out body; >; out skel qt;
Autre exemple
/*
Liste des routes limitées à 30 km/h
sur la zone de la carte visible
*/
// I - Format des données générées et durée maximum de la requête
[out:json][timeout:25];
// II - La requête
(
way["highway"]["maxspeed"="50"]({{bbox}});
);
// III - La sortie des résultats
// III.1 - avec représentation des éléments sur la carte
out body;
// Sortie de tous les résultats
>;
out skel qt;
Autre exemple, uniquement un tableau de résultat : liste des pharmacies sur la commune de Rennes
[out:csv(::"type",::"id", name, admin_level,::"count")];
area[name="Rennes"][boundary];
rel(area)[boundary][admin_level=7];
map_to_area;
foreach->.d(
(.d;);
out;
(node(area.d)[amenity=pharmacy];
way(area.d)[amenity=pharmacy];
relation(area.d)[amenity=pharmacy];
);
out;
out count;
);