Christophe Jacquet

Afficher les cartes IGN dans Google Maps API

Note (2024) : cet article n’est plus maintenu ; il est probablement obsolète, aussi bien du côté IGN que Google Maps.

L’IGN fournit deux choses :

  1. une version en ligne de ses cartes, excellentes cartes dont la réputation n’est plus à faire,
  2. un service en ligne, le Géoportail, et une API associée.

Malheureusement, je trouve l’outil Géoportail et ses API extrêmement lourdingues, ce qui dessert le contenu, les cartes. De plus, l’intégration avec d’autres services peut être délicate.

Cet article explique comment afficher les jolies cartes IGN à l’aide d’une API simple et activement maintenue, l’API Google Maps Javascript.

Auparavant, les cartes IGN en ligne utilisaient une projection particulière, et un système de distribution de jeton, ce qui rendait leur intégration dans Google Maps non pas impossible, mais délicate.

Désormais le service WMTS (Web Map Tile Service) de l’IGN fournit des tuiles 256x256 projetées « à la Google » (EPSG:3857), donc l’intégration est on ne peut plus facile. On commence par créer un nouvel objet MapType :

ignMapType = new google.maps.ImageMapType({
        getTileUrl: function(coord, zoom) {
            return "http://gpp3-wxs.ign.fr/" + *ignKey* + "/geoportail/wmts?LAYER=" +
                *layer* +
                "&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0" +
                "&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX=" +
                zoom + "&TILEROW=" + coord.y + "&TILECOL=" + coord.x;
        },
        tileSize: new google.maps.Size(256,256),
        name: *name*,
        maxZoom: 18
});

où :

Ensuite il faut créer une carte avec un bouton pour cette nouvelle couche :

var map = new google.maps.Map(map_canvas, {
    mapTypeControlOptions: {
        mapTypeIds: ['IGN', google.maps.MapTypeId.ROADMAP],
        style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
    }
}

et faire le lien entre cette couche et le type défini plus haut :

map.mapTypes.set('IGN', ignMapType);

C’est tout !

On peut récupérer facilement la liste des couches accessibles avec sa clé à l’aide de la requête HTTP :

http://gpp3-wxs.ign.fr/*votre\_clé*/wmts?service=WMTS&request=GetCapabilities
HTML5 valide ? © . ✍ Contact. Mentions légales.