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

Erreur - geoportal-extensions-leaflet : Cannot read properties of undefined (reading 'nativeResolutions') #378

Closed AnthonyGigerich closed 4 months ago

AnthonyGigerich commented 4 months ago

Bonjour,

Le chargement du fichier GpPluginLeaflet.js renvoie une erreur : Cannot read properties of undefined (reading 'nativeResolutions') Cela concerne plus précisément les lignes 63 & 64 du fichier src/CRS/EPSG2154.js.

Votre environnement

Type d'issue

Retirer cette ligne : les checkboxes peuvent être cochées comme suit : [x] [x] Report de bug [ ] Requête d'une nouvelle fonctionnalité

Contexte

L'extension geoportal-extensions-leaflet est installé via npm, le moteur de carte est utilisé au sein d'une application Flask. Cela fonctionnait il y a quelques mois. Après une pause dans le développement, nous reprenons celui ci, le code n'a pas changé, le seul changement est le passage de la version 2.3.1 (qui est devenu obsolète ou en tout cas ne fonctionnait plus) à la version 2.4.0.

Le code concerné est dans le fichier src/CRS/EPSG2154.js :

63: var o = Config.configuration.getTMSConf("LAMB93");
64: resolutions = o.nativeResolutions;

La variable o est undefined, et cela provoque une erreur à la ligne 64.

Supprimer la ligne 64, et donc forcer la sortie de la fonction _getResolutions à la valeur par défaut permet de résoudre le problème.

Pour les bugs : Etapes à suivre pour le reproduire

J'ai ouvert un dépôt avec un exemple minimal de ma configuration pour reproduire l'erreur :

https://github.com/AnthonyGigerich/bug-geoportal-extensions-leaflet

L'application Flask charge le template HTML. Le HTML lui charge l'extension, afin d'afficher une carte avec un fond de carte IGN.

Possible Cause/Correction/Solution technique (facultatif)

La fonction getTMSConf("LAMB93") retourne un attribut undefined, l'appel à l'attribut nativeResolutions sur l'élément undefined provoque une erreur.

Mise à part le problème de getTMSConf qui renvoie undefined, peut-être faut-il faire un contrôle et retourner la valeur par défaut si la configuration n'est pas chargée correctement à cette étape ? Cela semble être fait pour l'EPSG27572 mais pas pour les 2 autres.

elias75015 commented 4 months ago

Bonjour,

pouvez-vous tester avec la PR https://github.com/IGNF/geoportal-extensions/pull/380 svp ?

La configuration renvoyée pour le L93 a changé, le CRS a désormais pour nom LAMB93-5cm

AnthonyGigerich commented 4 months ago

En effet cela fonctionne bien avec cette modification.

Merci pour le retour rapide @elias75015 !

elias75015 commented 4 months ago

Parfait, le correctif sera intégré à la prochaine release.