Salut la team Géoportail !
Je viens de mettre à jour mon SDK (je ne l'avais pas fait depuis un moment), et désormais j'ai une erreur console qui apparaît lorsque je veux ajouter une couche directement depuis la map OpenLayers sous-jacente à la map du SDK.
Constaté ici : https://www.agglo-larochelle.fr/cart...d-nouvelle-api
La couche s'ajoute bien (le plan IGN), mais j'ai une erreur console "Cannot convert undefined or null to object" qui remonte depuis la lib OpenLayers
Reproduit depuis vos propres exemples, par exemple ici : https://jsfiddle.net/ignfgeoportail/a9Lhp3tz/
Si j'ajoute le code suivant (le même que proposé par OpenLayers dans son exemple https://openlayers.org/en/latest/examples/wmts-ign.html) dans le JSFiddle pour ajouter manuellement une couche d'orthophotos à la map, l'erreur apparaît.
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 const resolutions = []; const matrixIds = []; const proj3857 = ol.proj.get('EPSG:3857'); const maxResolution = ol.extent.getWidth(proj3857.getExtent()) / 256; for (let i = 0; i < 20; i++) { matrixIds[i] = i.toString(); resolutions[i] = maxResolution / Math.pow(2, i); } const tileGrid = new ol.tilegrid.WMTS({ origin: [-20037508, 20037508], resolutions: resolutions, matrixIds: matrixIds }); var orthoSource = new ol.source.WMTS({ url: 'https://wxs.ign.fr/essentiels/geoportail/wmts', layer: 'ORTHOIMAGERY.ORTHOPHOTOS', matrixSet: 'PM', format: 'image/jpeg', projection: 'EPSG:3857', tileGrid: tileGrid, style: 'normal', wrapX: true }); var orthoLayer = new ol.layer.Tile({ source: orthoSource, id: 'orthoIGN' }); map.getLibMap().addLayer(orthoLayer);
Alors peut-être que c'est pas grave parce que la couche s'ajoute quand même, mais une erreur console ça me rassure pas des masses et je ne sais pas quels effets de bord ça pourrait induire.
Une idée ?
EDIT
Je viens de voir au moins un effet de bord : si le code d'ajout de couche est appelé dans une fonction déclenchée par l'évènement mapLoaded, tout ce qui suit dans cette fonction n'est plus exécuté du fait de l'erreur rencontrée. C'est fâcheux.
Alors oui je peux contourner ça par un try/catch autour de la ligne map.getLibMap().addLayer(), mais c'est un peu dommage
Partager