#1 Mon 09 November 2020 19:41
- JohnsonSIG
- Juste Inscrit !
- Date d'inscription: 24 Feb 2016
- Messages: 4
probleme Openlayer et format WMTS
Bonjour,
J'utilise actuellement la dernière version d'openlayer.
je cherche à faire quelque chose comme ceci:
https://openlayers.org/en/latest/exampl … -side.html
Pour cela j'ai le code suivant:
Code:
/*instanciation de sources pour les layer*/ let osm = new ol.source.OSM(); let osm2plan = new ol.source.TileWMS({ url:"https://geoserver.maps.science/geoserver/OSM/wms?request=GetMap&service=WMS&version1.1.1", params:{"LAYERS":"plan_osm_uk"}, }); let ignPlan = new ol.source.WMTS({ url:"https://wxs.ign.fr/pratique/geoportail/wmts", layer:"GEOGRAPHICALGRIDSYSTEMS.MAPS", matrixSet:"PM", format:"image/jpeg", style:"normal", attribution: "© IGN" }); /*instanciation des layers */ let osmLayer = new ol.layer.Tile({ source:osm }); let osm2planLayer = new ol.layer.Tile({ source:osm2plan }); let ignPlanLayer = new ol.layer.Tile({ source:ignPlan, }); /*instanciation de la vue*/ const view = new ol.View({ projection:'EPSG:4326', center:[-1.824945,51.186808], zoom:8 }); /*instaciation des cartes*/ let currentLayer1 = [ignPlanLayer]; let currentLayer2 = [osm2planLayer]; let map1 = new ol.Map({ target:'map1', layers:currentLayer1, view:view, }); let map2 = new ol.Map({ target:'map2', layers:currentLayer2, view:view, });
Globalement je créé 3 layers : 1 osm, 1 wms, une wmts.
les variables currentLayer1 et currentLayer2 servent à passer les layers à ma map.
Pas de souci avec n'importe quel combinaison de layer OSM et/ou WMS
MAIS j'obtient cette erreur dans la console avec une couche au format WMTS:
createFromWMTSTemplate WMTS.js:284
createTile_ TileImage.js:286
getTileInternal TileImage.js:355
getTile TileImage.js:307
getTile TileLayer.js:111
renderFrame TileLayer.js:201
render Layer.js:214
renderFrame Composite.js:113
renderFrame_ PluggableMap.js:1150
animationDelay_ PluggableMap.js:179
render PluggableMap.js:1070
handleSizeChanged_ PluggableMap.js:918
dispatchEvent Target.js:114
notify Object.js:160
set Object.js:180
setSize PluggableMap.js:1193
updateSize PluggableMap.js:1226
handleTargetChanged_ PluggableMap.js:982
dispatchEvent Target.js:114
notify Object.js:160
set Object.js:180
setProperties Object.js:193
e PluggableMap.js:324
e Map.js:85
<anonymous> main.js:44
Mon script est le "main.js", et la ligne 44 est la ligne ou je passe ma source à "map1".
mon code est assez proche de celui ci:
https://openlayers.org/en/latest/examples/wmts-ign.html
et je ne voie pas ou est l'erreur, si quelque à une idée...
PS: ce code est une ébauche.
voila voila ,
merci à vous!
Hors ligne
#2 Wed 11 November 2020 16:09
- sylvainSIG
- Participant assidu
- Lieu: Moissac
- Date d'inscription: 29 Nov 2018
- Messages: 265
Re: probleme Openlayer et format WMTS
Salut,
J'ai essayé de reproduire ton code. Je sais pas trop pourquoi mais moi ça marche pas. Mais ça c'est totalement indépendant de ton problème.
Je te propose de restructurer ton code selon :
- les maps
- la vue
- la définition des sources
- la définition des couches
- et CurrentLayer1 et CurrentLayer2, même si c'est pas "faux" au niveau syntaxique, je te propose de le remplacer par
Code:
//pour CurrentLayer1 map1.addLayer(ignPlanLayer); //pour CurrentLayer2 map2.addLayer(osm2planLayer);
L'ordre a parfois une importance. Et je te conseille de travailler avec var, qui a une portée bcp plus importante que let et const, qui se limitent au bloc courant.
Bien à toi,
Sylvain
Dernière modification par sylvainSIG (Wed 11 November 2020 16:10)
Hors ligne