Makina Blog

Le blog Makina-corpus

Bascule de l'IGN, tutoriel : modification des fonds de plan dans Geotrek


Cet article présente les modifications à réaliser dans les différentes briques pour pouvoir continuer de bénéficier des services de l'IGN à partir de Janvier 2024.

Sommaire

Cet article constitue une base de tutoriel pour pouvoir modifier les fonds de plan dans Geotrek-Admin et Geotrek-Rando. Cela va devenir un rituel pour les utilisateurs de Geotrek qui possèdent l'application depuis plusieurs années.

Après avoir changé d'url en 2020 et modifié son service en 2022, l'IGN a prévu le renouvellement de sa plate-forme dès 2024. Cette migration de service annoncée depuis le début de l'année 2023 a pris du retard. En effet, la stabilisation des services a pris fin début décembre et l'arrêt des anciens services est planifié pour janvier, ce qui signifie que les modifications doivent être effectuées lors du mois de décembre 2023.

Avec la migration des services de l'IGN annoncée en Janvier 2024, les fonds de plan configurés dans Geotrek devront donc être modifiés.

Geotrek-Admin

Dans Geotrek-Admin, les fonds de plan sont configurés dans le fichier /opt/geotrek-admin/var/conf/custom.py. C'est donc ce fichier qu'il va falloir modifier pour pouvoir paramétrer les nouveaux fonds.

Les fonds sont configurés dans Leaflet, la brique utilisée pour gérer la carte. Par conséquent, la configuration de Leaflet doit être modifiée ainsi :

LEAFLET_CONFIG['TILES'] = [
        ('Titre de mon fond de plan', 'URL des données', 'Copyright / attribution'),
]

Par exemple, la configuration de base pour OpenStreetMap est la suivante dans Geotrek :

LEAFLET_CONFIG['TILES'] = [
        ('OSM', 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', '© OpenStreetMap Contributors'),
]

Pour mettre à jour les fonds IGN, deux options s'offrent à vous selon votre cas :

Option 1 : Vous n'aviez jusqu'alors aucun fond IGN configuré, ni aucun fond de paramétré dans votre fichier `custom.py`

Dans ce cas, il vous suffit d'ajouter les lignes suivantes dans votre fichier :

LEAFLET_CONFIG['TILES'] = [
        (
            'IGN Plan V2',
            '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
            {
                'attribution': 'Plan IGNV2 - Carte © IGN/Geoportail',
                'maxNativeZoom': 19,
                'maxZoom': 22
            }
        ),
        (
            'IGN Orthophotos',
            '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&STYLE=normal&FORMAT=image/jpeg&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
            {
                'attribution': 'Orthophotos - Carte © IGN/Geoportail',
                'maxNativeZoom': 19,
                'maxZoom': 22
            }
        ),
        (
            'IGN Cadastre',
            '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=CADASTRALPARCELS.PARCELLAIRE_EXPRESS&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
            {
                'attribution': 'Cadastre - Carte © IGN/Geoportail',
                'maxNativeZoom': 19,
                'maxZoom': 22
            }
        ),
        (
            'OpenStreetMap',
            '//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            {
                'attribution': '&copy; <a href="https://www.openstreetmap.org/copyright">Contributeurs d\'OpenStreetMap</a>',
                'maxNativeZoom': 19,
                'maxZoom': 22
            }
        ),
        (
            'OpenTopoMap',
            '//{s}.tile.opentopomap.org/{z}/{x}/{y}.png',
            {
                'attribution': 'map data: © <a href="https://openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="http://viewfinderpanoramas.org">SRTM</a> | map style: © <a href="https://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)',
                'maxNativeZoom': 17,
                'maxZoom': 22
            }
        )
    ]

Vous aurez ainsi surchargé les fonds par défaut de Geotrek en y ajoutant les fonds IGN suivants :

  • Orthophotos
  • Plan IGN V2
  • Cadastre

Option 2 : vous aviez déjà des fonds configurés dans votre fichier de personnalisation

Dans le cas présent, il va falloir être plus prudent et modifier la section LEAFLET_CONFIG['TILES'] en conséquence, pour ajouter les bons liens dans les sections correspondantes.

Voici les nouvelles configurations de flux IGN à retenir :

Plan IGN V2

(
    'IGN Plan V2',
    '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Plan IGNV2 - Carte © IGN/Geoportail',
        'maxNativeZoom': 19,
        'maxZoom': 22
    }
)

Orthophotos

(
    'IGN Orthophotos',
    '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&STYLE=normal&FORMAT=image/jpeg&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Orthophotos - Carte © IGN/Geoportail',
        'maxNativeZoom': 19,
        'maxZoom': 22
    }
)

Cadastre

(
    'IGN Cadastre',
    '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=CADASTRALPARCELS.PARCELLAIRE_EXPRESS&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Cadastre - Carte © IGN/Geoportail',
        'maxNativeZoom': 19,
        'maxZoom': 22
    }
)

Bonus : avoir le fond cadastral en sur-impression des autres fonds

Pour cela rien de plus simple, vous pouvez rajouter les lignes suivantes dans votre fichier de configuration :

LEAFLET_CONFIG['OVERLAYS'] = [
        (
            'IGN Cadastre',
            '//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=CADASTRALPARCELS.PARCELLAIRE_EXPRESS&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
            {
                'attribution': 'Cadastre - Carte © IGN/Geoportail',
                'maxNativeZoom': 19,
                'maxZoom': 22
            }
        ),
    ]

Valider les modifications et recharger Geotrek-Admin

Une fois les modifications effectuées, vous pouvez sauvegarder le fichier de configuration. Ensuite, une commande permet de recharger Geotrek-Admin pour que les modifications soient prises en compte : `sudo dpkg-reconfigure geotrek-admin`.

Lorsqu'on vous demande des informations, validez en faisant ENTRER sans rien changer. Geotrek va ainsi être reconfiguré et relancé.

En lançant ensuite l'interface, nous constatons que les fonds sont bien là, félicitations !

Fonds de plan sélectionnables dans Geotrek-Admin

En effet, nous observons en violet les fonds de plan configurés et en bleu le fond cadastral que nous pouvons cocher pour afficher en sur-impression.

Toutes les informations présentées dans cette section peuvent être retrouvées dans la documentation en ligne de Geotrek-Admin.

Geotrek-Rando

Dans Geotrek-Rando, un fichier regroupe l'ensemble de la configuration pour gérer les fonds de plan, il s'agit du fichier customization/config/map.json. Ce fichier est par défaut formaté ainsi :

{
  "searchMapCenter": [44.8, 6.3],
  "maximumZoomLevel": 17,
  "searchMapZoom": 10,
  "mapClassicLayers": [
    {
      "url": "//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",
      "options": {
        "attribution": "Map data: © <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, SRTM | Map style: © <a href=\"https://opentopomap.org\" target=\"_blank\">OpenTopoMap</a> (<a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" target=\"_blank\">CC-BY-SA</a>)",
        "minZoom": 1,
        "maxZoom": 11
      }
    },
    {
      "url": "//wxs.ign.fr/cartes/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/png&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
      "options": {
        "attribution": "© IGN",
        "minZoom": 12,
        "maxZoom": 20
      }
    }
  ],
  "mapSatelliteLayers": [
    {
      "url": "//wxs.ign.fr/ortho/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
      "options": {
        "attribution": "© IGN"
      }
    }
  ],
  "mapOfflineLayer": {
    "url": "//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",
    "options": {
      "attribution": "Map data: © <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, SRTM | Map style: © <a href=\"https://opentopomap.org\" target=\"_blank\">OpenTopoMap</a> (<a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" target=\"_blank\">CC-BY-SA</a>)"
    }
  },
  "zoomAvailableOffline": [13, 14, 15]
}

Pour pouvoir bénéficier des services IGN, nous allons devoir ici encore modifier la configuration. Pour cela, éditez le fichier map.json et modifiez les URL correspondantes à l'IGN. Ainsi, l'équivalent du fichier par défaut est maintenant le suivant :

{
  "searchMapCenter": [44.8, 6.3],
  "maximumZoomLevel": 17,
  "searchMapZoom": 10,
  "mapClassicLayers": [
    {
      "url": "//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",
      "options": {
        "attribution": "Map data: © <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, SRTM | Map style: © <a href=\"https://opentopomap.org\" target=\"_blank\">OpenTopoMap</a> (<a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" target=\"_blank\">CC-BY-SA</a>)",
        "minZoom": 1,
        "maxZoom": 11
      }
    },
    {
      "url": "//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
      "options": {
        "attribution": "Plan IGN V2 - © IGN",
        "minZoom": 12,
        "maxZoom": 20
      }
    }
  ],
  "mapSatelliteLayers": [
    {
      "url": "//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&STYLE=normal&FORMAT=image/jpeg&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
      "options": {
        "attribution": "Orthophotos - © IGN"
      }
    }
  ],
  "mapOfflineLayer": {
    "url": "//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",
    "options": {
      "attribution": "Map data: © <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, SRTM | Map style: © <a href=\"https://opentopomap.org\" target=\"_blank\">OpenTopoMap</a> (<a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" target=\"_blank\">CC-BY-SA</a>)"
    }
  },
  "zoomAvailableOffline": [13, 14, 15]
}

Une fois les modifications effectuées, relancez Geotrek-Rando pour qu'elles soient prises en compte. Profitez-en pour faire une mise à jour (pensez à vérifier qu'il n'y a pas de breaking changes) en lançant les commandes suivantes :

docker-compose pull && docker-compose down && docker-compose up -d

Et voilà, Geotrek-Rando est à jour avec les nouveaux flux IGN configurés ! Toutes les informations relatives à ces étapes sont disponibles dans la documentation en ligne de Geotrek-Rando.

Fonds IGN règlementés : le cas du Scan 25

L'IGN propose certains fonds en accès restreint, c'est par exemple le cas du fond de plan Scan 25. Pour ces fonds, il est nécessaire de passer par une URL formatée autrement et d'avoir une clé d'accès.

Formatage de l'URL

La configuration suivante permet d'accéder au flux Scan 25 :

(
    'Scan25',
    '//data.geopf.fr/private/wmts?apikey=ign_scan_ws&LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Scan 25 - Carte © IGN/Geoportail',
        'maxNativeZoom': 16,
        'maxZoom': 22
    }
),

La configuration, ci-dessous, vous permet d'accéder au flux Scan 100 :

(
    'IGN Scan 100',
    '//data.geopf.fr/private/wmts?apikey=ign_scan_ws&LAYER=SCAN100_PYR-JPEG_WLD_WM_WMTS_3D&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Scan 100 - Carte © IGN/Geoportail',
        'maxNativeZoom': 14,
        'maxZoom': 20
    }
),

Cette configuration permet d'accéder au flux Scan Adaptatif (en fonction du zoom 100 puis 25 puis IGN V2) :

(
    'IGN Scan Adaptatif',
    '//data.geopf.fr/private/wmts?apikey=ign_scan_ws&LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
    {
        'attribution': 'Cadastre - Carte © IGN/Geoportail',
        'maxNativeZoom': 18,
        'maxZoom': 22
    }
)

Mais où doit-on mettre la clé d'API ? Comment l'obtenir ?

Pour le moment, une clé unique existe : ign_scan_ws.

L'IGN souhaite mettre en ligne une plate-forme de gestion des clés (cartes.gouv.fr), mais cette plateforme n'est pas encore sortie. Par conséquent, il faudra attendre sa mise en ligne pour pouvoir gérer les clés d'accès. Lorsque les clés seront émises, il faudra modifier à nouveau les url pour insérer le code de la clé. Ainsi, il faudra remplacer dans l'url ign_scan_ws par votre clé.

Plus d'informations sur les accès aux flux restreints via le blog de l'IGN, à consulter régulièrement car les modifications sont fréquentes.

Ressources

De nombreux autres fonds de plan mis à disposition par l'IGN existent et peuvent être utilisés.

La liste est disponible sur le site internet de l'IGN, rubrique "Données du Service d'images tuilées WMTS".

Pour les utiliser, adaptez l'URL de flux à insérer dans Geotrek de la sorte :

"//data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER={CODE_DE_LAYER_A_INSERER}&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}"

Attention toutefois, le format devra parfois être adapté. En effet, certains flux n'acceptent pas le format image/png mais uniquement image/jpeg. D'après la documentation de l'IGN, les formats possibles sont les suivants :

PNG, JPEG, TIFF, BIL…

À l'heure actuelle aucune documentation rédigée n'existe sur ce sujet, afin de savoir quels sont les formats supportés et par quel flux. Malheureusement, il faut donc tester pour se rendre compte de ce qui est supporté, ou pas, ou alors consulter le flux dans son intégralité pour trouver l'information.

De même, il est possible qu'il existe des flux supplémentaires qui ne soient pas documentés. C'est le cas, par exemple du flux PLANIGNV2 qui n'est pas répertorié dans la liste des flux WMTS valables.

Si vous rencontrez des problèmes lors de votre configuration Geotrek, n'hésitez pas à faire appel à la communauté via les canaux suivants :

Formations associées

Formations Geotrek

Formation Utilisation de Geotrek

Toulouse Nous contacter

Voir la formation

Formations Geotrek

Formation Administration et personnalisation de Geotrek

Toulouse Nous contacter pour des dates

Voir la formation

Formations SIG / Cartographie

Formation Leaflet

Toulouse Du 4 au 5 décembre 2024

Voir la formation

Actualités en lien

Image
Geotrek
15/11/2023

Geotrek, 11 ans d’une communauté grandissante

Cet article présente l'organisation communautaire du logiciel libre Geotrek et met en avant quelques ingrédients, qui selon nous, permettent de fédérer et donc de participer à la réussite d'un logiciel libre.

Voir l'article
Image
Parc National des écrins - IGN
29/09/2015

Geotrek et l'IGN, ça fonctionne !

Makina Corpus offre la possibilité d’exporter les données de Geotrek vers le nouveau portail de l’IGN : l’Espace Loisirs

Voir l'article
Image
Geotrek logo
05/09/2014

Pourquoi vendons-nous Geotrek, disponible sous licence libre ?

Pourquoi nous devons payer même si c'est gratuit : rappel des fondamentaux et des engagements de Makina Corpus

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus