OpenStreetMap : Différence entre versions

De Kono Phil Ceci est la tagline
Aller à : navigation, rechercher
m (Projet dérivé)
m (Exemples de scripts)
 
Ligne 64 : Ligne 64 :
  
 
=== Exemples de scripts ===
 
=== Exemples de scripts ===
 +
 +
==== Bâtiment et nombre de niveaux ====
 +
<pre>
 +
/*
 +
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;
 +
</pre>
 +
 +
==== Type "ferme" ====
 
Ci-dessous, un exemple de code permettant d'identifier les éléments ayant la caractéristique "amenity=farm" :
 
Ci-dessous, un exemple de code permettant d'identifier les éléments ayant la caractéristique "amenity=farm" :
 
<pre>
 
<pre>
Ligne 85 : Ligne 112 :
 
</pre>
 
</pre>
  
Autre exemple
+
==== Liste des routes limitées à 50 ====
 
<pre>
 
<pre>
 
/*
 
/*
Liste des routes limitées à 30 km/h
+
Liste des routes limitées à 50 km/h
 
sur la zone de la carte visible
 
sur la zone de la carte visible
 
*/
 
*/
Ligne 109 : Ligne 136 :
 
</pre>
 
</pre>
  
Autre exemple, uniquement un tableau de résultat : liste des pharmacies sur la commune de Rennes
+
==== Autre exemple, uniquement un tableau de résultat : liste des pharmacies sur la commune de Rennes ====
 
<pre>
 
<pre>
 
[out:csv(::"type",::"id", name, admin_level,::"count")];
 
[out:csv(::"type",::"id", name, admin_level,::"count")];
Ligne 127 : Ligne 154 :
 
</pre>
 
</pre>
  
Liste et carte des adresses n'ayant pas de code postal.
+
==== Liste et carte des adresses n'ayant pas de code postal ====
 
<pre>
 
<pre>
 
[out:json][timeout:25];
 
[out:json][timeout:25];
Ligne 138 : Ligne 165 :
 
</pre>
 
</pre>
  
Mise en évidence des routes et des vitesses autorisées
+
==== Mise en évidence des routes et des vitesses autorisées ====
 
<pre>
 
<pre>
 
[bbox:{{bbox}}];
 
[bbox:{{bbox}}];
Ligne 179 : Ligne 206 :
 
</pre>
 
</pre>
  
Toutes les contributions d'un utilisateur
+
==== Toutes les contributions d'un utilisateur ====
 
<pre>
 
<pre>
 
[out:json][timeout:25];
 
[out:json][timeout:25];

Version actuelle datée du 9 juillet 2019 à 18:56

OpenStreetMap (OSM) est un projet qui a pour but de constituer une base de données géographiques libre du monde.

Site principal :

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 :


L'article "Bâtiments 3D simples" sur le wiki d'Openstreetmap.org :

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

overpass turbo

Outil permettant de réaliser des requêtes sur le base de données OpenStreetMap :

Mode d'emploi :


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;
}
}}

Toutes les contributions d'un utilisateur

[out:json][timeout:25];
(node(user:fylip22)({{bbox}}););
out body;
>;
out skel qt;

Voir aussi