Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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: 263

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

 

Pied de page des forums

Powered by FluxBB