OpenStreetMap
OpenStreetMap (OSM) est un projet qui a pour but de constituer une base de données géographiques libre du monde.
Site principal :
Autre :
Utilisation
Caractéristiques pour la 3D
Le projet osmbuildings.org :
Avec les coordonnées pour Pommerit-le-Vicomte (au 09/06/2019, il n'y a aucunes données pour la représentation 3D) :
Plusieurs projets tentent d'utiliser les données libres d'Openstreetmap.org pour réaliser des scènes 3D. En conséquence, il est nécessaire de caractériser avec plus de détail les éléments d'Openstreetmap.org et en particulier les bâtiments.
Principes généraux sur le wiki d'openstreetmap.org :
Plusieurs clés sont utilisées :
- height pour la hauteur brute du bâtiment ;
height=7
pour une hauteur de 7 mètres ; - building:levels pour le nombre d'étages au-dessus du sol, sans compter le toit ;
building:levels=2
pour deux étages au-dessus du sol ; - building:material pour les matériaux des murs ;
- roof:shape pour caractériser le type de toiture :
- roof:material pour les matériaux utilisés pour la toiture :
L'article "Bâtiments 3D simples" sur le wiki d'Openstreetmap.org :
Initiative pour la découverte
Cartopen, association de promotion d'Openstreetmap :
Projet dérivé
Openrouteservice, permet de générer des isochrones (temps et distance) :
OpenHistoricalMap :
Wikipédia, l'article :
Un exemple en construction :
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 :
Exemples de scripts
Bâtiment et nombre de niveaux
/* Mise en évidence des bâtiments ayant 1 ou 2 niveaux 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["building:levels"="1"]({{bbox}}); way["building:levels"="2"]({{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;
Type "ferme"
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;
Liste des routes limitées à 50
/* Liste des routes limitées à 50 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; );
Liste et carte des adresses n'ayant pas de code postal
[out:json][timeout:25]; ( node["addr:street"][!"addr:postcode"]({{bbox}}); way["addr:street"][!"addr:postcode"]({{bbox}}); ); out skel; out;
Mise en évidence des routes et des vitesses autorisées
[bbox:{{bbox}}]; ( way["highway"](if: (is_number(t["maxspeed"]) && t["maxspeed"] <= 90)); >; ); out; {{style: way[highway][maxspeed=30] { color: red; width: 4; opacity: .7; } way[highway][maxspeed=50] { color: green; width: 4; opacity: .7; } way[highway][maxspeed=70] { color: blue; width: 4; opacity: .7; } way[highway][maxspeed=80] { color: grey; width: 4; opacity: .9; } way[highway][maxspeed=90] { color: black; width: 3; opacity: .7; } }}
Les panneaux stop et cédez-le-passage
/* Liste des panneaux stop et des panneaux cédez-le-passage (give_way) 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 ( node["highway"]["highway"="stop"]({{bbox}}); node["highway"]["highway"="give_way"]({{bbox}}); ); // III - La sortie des résultats // III.1 - avec représentation des éléments sur la carte out body; // III.2 - avec un style personnalisé des marques {{style: node[highway][highway=stop] { color: red; width: 4; opacity: .7; } node[highway][highway=give_way] { color: green; width: 4; opacity: .7; } }} // IV - Sortie de tous les résultats >; out skel qt;
Toutes les contributions d'un utilisateur
[out:json][timeout:25]; (node(user:fylip22)({{bbox}});); out body; >; out skel qt;