IGNF / geoportal-extensions

French Geoportal Extensions for well-known javascript mapping libraries (Leaflet and OpenLayers)
https://ignf.github.io/geoportal-extensions/
Other
64 stars 33 forks source link

ERROR layer id #373

Closed renaudgweb closed 8 months ago

renaudgweb commented 8 months ago

Bonjour,

J'obtiens une erreur :

ERROR layer id (layer name: GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-OACI / service: WMTS) was not found !?

dans la console (j'utilise leaflet)

La carte GEOGRAPHICALGRIDSYSTEMS.MAPS quand à elle s'affiche correctement, mais les autres :

GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-OACI GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR.L93

Ne s'affichent plus, j'ai 196 et 46 à la place des noms de carte actuellement.

De même, je n'ai plus accès au isochrones, profils alti', etc...

Merci

elias75015 commented 8 months ago

Bonjour,

quelle version des extensions pour Leaflet utilisez-vous ?

Des informations pertinentes peuvent être trouvées sur ce post.

Avec la version 2.4.0-beta3 des extensions pour Leaflet, je ne rencontre aucun des problèmes décrits avec ce code (en ayant préalablement généré mon fichier de configuration comme indiqué dans le post linké au-dessus) :

        <script>

            var createMap = function () {
              // Création de la map
              var layer = L.geoportalLayer.WMTS({
                layer : "ORTHOIMAGERY.ORTHOPHOTOS"
              });
              var layerScan25 = L.geoportalLayer.WMTS({
                layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR"
              });
              var layerOACI = L.geoportalLayer.WMTS({
                layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-OACI"
              });

              var map  = L.map('map', {
                zoom : 10,
                center : L.latLng(48, 2)
              });

              layerScan25.addTo(map);
              layerOACI.addTo(map);

              var iso = L.geoportalControl.Isocurve();
              map.addControl(iso);
              var layerSwitcher = L.geoportalControl.LayerSwitcher();
              map.addControl(layerSwitcher);
              var route = L.geoportalControl.Route();
              map.addControl(route);
              var measureProfil = L.geoportalControl.ElevationPath();
              map.addControl(measureProfil);
            };

            Gp.Services.getConfig({
                customConfigFile: "chemin/vers/customConfig_private.json",
                timeOut: 20000,
                onSuccess: createMap,
                onFailure: function (e) {
                    console.error(e);
                }
            });

        </script>

Si vos problèmes persistent, n'hésitez pas à partager le code permettant d'initialiser votre carte et/ou un lien de démo vers votre application.

renaudgweb commented 8 months ago

Bonjour,

Merci pour votre réponse.

J'utilise la version 2.3.4 de Gp

c'est une appli de test, mon code est celui ci :

<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- Leaflet -->
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin="" />
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
    <!-- Plugin Mapbox fullscreen pour Leaflet -->
    <script src='https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/Leaflet.fullscreen.min.js'></script>
    <link href='https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/leaflet.fullscreen.css' rel='stylesheet' />
    <!-- Plugin Mapbox Location pour Leaflet -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol/dist/L.Control.Locate.min.css" />
    <script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol/dist/L.Control.Locate.min.js" charset="utf-8"></script>
    <!-- Extension Géoportail pour Leaflet -->
    <script src="leaflet/GpPluginLeaflet.js"></script>
    <link rel="stylesheet" href="leaflet/GpPluginLeaflet.css" />
    <script src="leaflet/GpPluginLeaflet-src.js"></script>
    <link rel="stylesheet" href="leaflet/GpPluginLeaflet-src.css" />
    <script src="leaflet/GpPluginLeaflet-map.js"></script>
    <link rel="stylesheet" href="leaflet/GpPluginLeaflet-map.css" />
    <style>
    body {
        padding: 0;
        margin: 0;
    }
    html, body, #map {
        height: 100%;
        width: 100vw;
    }
    .leaflet-control-attribution {
        display: none;
    }
    </style>
    <body>
        <div id="map"></div>
    </body>
    <script>
    function go() {
        var map = L.map('map', {
            zoom : 11,
            center : L.latLng(45, 4)
        });

        map.addControl(new L.Control.Fullscreen());

        var lc = L.control.locate({
        position: 'topleft',
        locateOptions: {
            enableHighAccuracy: true
        },
        strings: {
            title: "Geolocation"
        }
        }).addTo(map);

        var lyrOSM = L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png?', {
          // leafletParams
            opacity: 0,
            detectRetina: "True"
        });
        var lyrMaps = L.geoportalLayer.WMTS({
            layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS",
        }, {
            opacity: 1,
            detectRetina: "True"
        });
        var lyrOACI = L.geoportalLayer.WMTS({
            layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-OACI",
        }, {
            opacity: 0,
            detectRetina: "True"
        });
        var lyrSCAN25 = L.geoportalLayer.WMTS({
            layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR",
        }, {
            opacity: 0,
            detectRetina: "True"
        });
        var lyrSCAN25L93 = L.geoportalLayer.WMTS({
            layer : "GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR.L93",
        }, {
            opacity: 0,
            detectRetina: "True"
        });
        var lyrCADASTRE = L.geoportalLayer.WMTS({
            layer : "CADASTRALPARCELS.PARCELLAIRE_EXPRESS",
        }, {
            opacity: 0,
            detectRetina: "True"
        });
        map.addLayer(lyrCADASTRE);
        map.addLayer(lyrSCAN25L93);
        map.addLayer(lyrSCAN25);
        map.addLayer(lyrOSM);
        map.addLayer(lyrOACI);
        map.addLayer(lyrMaps);

        var layerSwitcher = L.geoportalControl.LayerSwitcher({
            layers : [{
                layer : lyrOSM,
                config : {
                    title : "OSM",
                    description : "Open Street Maps"
                }
            }]
        });
         map.addControl(layerSwitcher);

        // création et ajout du controle recherche
        var searchCtrl = L.geoportalControl.SearchEngine({
        });
        map.addControl(searchCtrl);

        // création et ajout du controle Adresse ou lieu en un point de la carte
        var revCtrl = L.geoportalControl.ReverseGeocode({
        });
        map.addControl(revCtrl);

        // création et ajout du controle d'itineraire
        var routeCtrl = L.geoportalControl.Route({
        });
        map.addControl(routeCtrl);

        // création et ajout du controle d'isochrones / isodistances
        var isoCtrl = L.geoportalControl.Isocurve({
        });
        map.addControl(isoCtrl);

        // création et ajout du controle Altitude en un point de la carte
        var mousePosition = L.geoportalControl.MousePosition({
        editCoordinates: true
        });
        map.addControl(mousePosition);

        // création et ajout du controle Profil altimétrique le long d’un traçé
        var ep = L.geoportalControl.ElevationPath({
        });
        map.addControl(ep);
    }
    Gp.Services.getConfig({
        customConfigFile: "path/to/customConfig.json",
        apiKey : "APIKEY",
        onSuccess: go,
        onFailure: (e) => {console.log(e)}
    });
    </script>
</html>

Actuellement j'obtiens des 401 :

GET https://data.geopf.fr/private/wmts?gp-leaflet-ext=2.3.4&service=WMTS&request=GetTile&version=1.0.0&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&style=normal&tilematrixset=PM&format=image/jpeg&opacity=1&detectRetina=True&tilematrix=11&tilerow=734&tilecol=1045
...

ainsi que ces avertissements :

Erreur dans les liens source : Error: request failed with status 401
URL de la ressource : https://monurl.com/leaflet/GpPluginLeaflet-src.js
URL du lien source : leaflet.draw-src.map
wrong event specified: touchleave 3 [DomEvent.Pointer.js:36:10](https://unpkg.com/leaflet@1.9.4/src/dom/DomEvent.Pointer.js)
WARNING CONFIG_FAILED : params not found ?!

Merci par avance de votre temps

elias75015 commented 8 months ago

Il vous faut utiliser la version 2.4.0-beta3 pour pouvoir afficher les couches à accès restreint.

Je vous invite à suivre la procédure détaillée pour les extensions Leaflet dans ce post.

Il vous faudra retirer :

apiKey : "APIKEY",

tel que :

Gp.Services.getConfig({
        customConfigFile: "path/to/customConfig.json",
        onSuccess: go,
        onFailure: (e) => {console.log(e)}
    });
renaudgweb commented 8 months ago

Un grand merci cela refonctionne correctement ! Très bon week-end ! Encore merci