URL: https://linuxfr.org/news/comment-creer-une-carte-open-street-map
Title: Comment créer une carte Open Street Map
Authors: JohannCR
Benoît Sibaud, claudex et Bruno Michel
Date: 2013年06月14日T15:26:03+02:00
License: CC By-SA
Tags: osm, openstreetmap, carte_open_street_mapcodage, javascript et openlayers
Score: 61
Vous avez déjà essayé de créer une carte personnalisée sur votre site ? Ce n’est pas toujours une partie de plaisir... Certains fournisseurs de map proposent des cartes très esthétiques, mais peu personnalisables, d’autres sont lourds à implémenter, bref, construire une carte à base d’open data peut être un parcours du combattant.

Ce guide ne cherche pas à être exhaustif, il s’agit surtout d’un partage d’expérience, fort limité du fait que je ne suis pas un développeur ou mappeur professionnel. En revanche, je pense bien représenter le public non-codeur qui souhaiterait passer ces obstacles, et si cet article peut aider un débutant comme moi à trouver des ressources, des idées et des bouts de code pour parvenir à réaliser son objectif, alors cet article aura joué son rôle.
N’hésitez pas à partager vos avis, critiques et conseils dans les commentaires !
On commencera par lister quelques exemples de cartes, on verra un ou deux exemples de plateformes de création de carte sans coder, puis on entrera dans les détails du code nécessaire pour monter une carte avec OpenLayers.
----
----
#I. Exemples de cartes#
Commençons par voir quelques exemples de projets de carte basés sur OpenStreetMap :
* [opencyclemap.org](http://www.opencyclemap.org/) est une carte des pistes cyclables.
* [openpistemap.org](http://openpistemap.org/) est une carte des pistes de ski.
* [openptmap.org](http://www.openptmap.org/) trains, métros, tramways et bus.
* [öpnvkarte.de](http://öpnvkarte.de/) aéroports, métros, tramways et bus.
* [wheelmap.org](http://wheelmap.org/fr/map) accessibilité aux fauteuils roulant.
* [maposmatic.org](http://www.maposmatic.org) génération de cartes de villes. Attention, générer la carte d’une grande ville prend beaucoup de temps à la création et à la lecture ! L’export est possible au format pdf, png, svgz et csv. Pour une grande ville, le format png est recommandé. Le format csv liste les noms de rues et de bâtiments publics avec leurs positions sur la carte (pas de coordonnées gps, juste des positions dans la grille générée dans les autres formats).
* [leretourdelautruche.com/map/nuke/](http://www.leretourdelautruche.com/map/nuke/) carte des centrales nucléaires dans le monde, avec sites d’explosions nucléaires.
* [gotronic.fr/carte-des-fablabs.htm](http://www.gotronic.fr/ins-carte-des-fablabs-50.htm) une carte des FabLabs en France et dans le monde. Disclaimer : j’en suis l'auteur. C’est ma première map donc elle pourrait très certainement être améliorée.
Une liste de cartes beaucoup plus exhaustive est disponible sur le [wiki d’openstreetmap](http://wiki.openstreetmap.org/wiki/List_of_OSM_based_Services )
#II. Construire une carte sans coder#
Si vous souhaitez construire une carte utilisant des données issues d’Open Street Map, mais ne souhaitez pas coder, au moins deux solutions sont disponibles.
* [Umap](http://umap.openstreetmap.fr/fr/).
Il est possible de dessiner des zones, placer des marqueurs, des lignes, définir le niveau de zoom et le centrage, choisir un fond de carte, le tout en quelques clics.

On peut importer des données au format GeoJSON, KML, GPX et CSV. Voir section « couches de données ».
Une fois la carte terminée on peut extraire le code html, une URL (compressée) de la carte, ou télécharger les données au format GeoJSON.
Remarque : il est possible de choisir la licence WTFPL, dont l’acronyme signifie « [do What The Fuck you want to Public Licence](http://fr.wikipedia.org/wiki/WTFPL) » !
Il va sans dire que ces cartes sont donc sous licence publique.
* [Open Mapquest](http://open.mapquest.fr/).
Un peu limité en fonctionnalités, on ne peut qu’afficher des points d’intérêt parmi une liste proposée ou tracer des itinéraires. J’ignore s’il est possible de personnaliser l’import/export de données.
Il en existe probablement d’autres que je n’ai pas cité, n’hésitez pas à me le signaler dans les commentaires !
#III. Coder une carte#
Coder une carte requiert deux choses :
Des tuiles et une bibliothèque javascript. Les tuiles forment la base de la carte, et des couches (layers) sont ajoutées par-dessus pour afficher des points, des reliefs, zones, popups, etc. par-dessus les couches utilisées.

##1. Les tuiles##
Ce sont les blocs qui constitueront la carte. Ces blocs sont chargés en fonction de la zone de la carte affichée.
Voici une [liste de quelques serveurs de tuiles](http://wiki.openstreetmap.org/wiki/Tiles) avec des exemples de leur rendu.
Typiquement, ce sont les tuiles Mapnik qui sont utilisées par OSM, CloudMade, MapQuest et MapBox, elles ressemblent à cela :

##2. Une bibliothèque JavaScript##
C’est un ensemble de fonctions JavaScript prédéfinies pour exploiter les tuiles et les couches qui se superposeront dessus.
* [Leaflet](http://leafletjs.com/)
Bibliothèque open source. Un exemple simple de création de carte est détaillé pas à pas dans [ce guide](http://leafletjs.com/examples/quick-start.html) (en anglais). Voici le [résultat](http://leafletjs.com/examples/quick-start-example.html).
Cet exemple utilise les tuiles cloudmade (donc le rendu Mapnik) et reste relativement basique (pas de récupération de données d’OSM).
* [OpenLayers](http://openlayers.org/)
Open source. On peut trouver quelques [exemples sur cette page](http://openlayers.org/dev/examples/). C’est un peu difficile de s’y retrouver sur leur site, à l’image de cette bibliothèque qui est un peu plus difficile à exploiter que leaflet. OpenLayers semble être la bibliothèque la plus complète toutefois.
* [MapQuest](http://developer.mapquest.com/web/products/featured/javascript)
* MapQuery (http://mapquery.org/) combine OpenLayers et jQuery.
* Cloudmade
* Via Michelin
* Yahoo Map
* Microsoft Virtual Earth
* Google Maps
* etc.
Comparaison du code nécessaire pour créer une carte avec différentes bibliothèques sur [trippingthebits.com](http://trippingthebits.com/geopres/). Sont testés Bing, ESRI, Google, MapQuest, OpenLayers, OVI et Leaflet.
Voici un résumé des liens entre plusieurs fournisseurs de cartographie Web gratuite, comprenant des bibliothèques javascript mais aussi des applications ou plateformes. [Image issue de cet article](http://geotux.tuxfamily.org/index.php/en/geo-blogs/item/265-comparacion-de-clientes-web-para-sig-v5).

##3. Des couches de données (optionnelles)##
Pouvoir coder une carte est bien, mais l’intérêt est surtout de pouvoir ajouter des POI ou points d’intérêts justement.
###a) Première possibilité : utiliser des données fixes###
Une méthode est d’aller sur [http://overpass-turbo.eu/](http://overpass-turbo.eu/) (par exemple) et de coller ce bout de code avant de cliquer sur « run » :
```xml