IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Afficher une couche INSPIRE WMS avec la nouvelle méthode 'ol.layer.Tile'


Sujet :

IGN API Géoportail

  1. #1
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 228
    Points : 286
    Points
    286
    Par défaut Afficher une couche INSPIRE WMS avec la nouvelle méthode 'ol.layer.Tile'
    Bonjour,

    je suis en train d'adapter un ancien code pour utiliser les nouvelles méthodes Geoservices.
    Cela concerne des couches INSPIRE que j'utilise et qui avec mon code actuel utilise une clé personnelle avec les autorisations adéquates.

    Voici un exemple d'extrait de codes où j'affiche :
    • La couche OSM
    • La couche Photos aériennes
    • La couche INSPIRE AD.Address

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    /*************** variable WMTS ***************/
    var resolutions = [156543.03392804103, 78271.5169640205, 39135.75848201024, 19567.879241005125, 9783.939620502562, 4891.969810251281, 2445.9849051256406, 1222.9924525628203, 611.4962262814101, 305.74811314070485, 152.87405657035254, 76.43702828517625, 38.218514142588134, 19.109257071294063, 9.554628535647034, 4.777314267823517, 2.3886571339117584, 1.1943285669558792, 0.5971642834779396, 0.29858214173896974, 0.14929107086948493, 0.07464553543474241];
    var matrixIds = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"];
    /*************** variable WMTS fin ***************/
     
    /************************* Définition des cartes *************************/
    const osmlayer = new ol.layer.Tile({
    	source: new ol.source.OSM()
    })
    if (osmlayer) layers.push(osmlayer);
     
    const ignphotoaerienne = new ol.layer.Tile({
    	source : new ol.source.WMTS({
    		url: "https://wxs.ign.fr/essentiels/geoportail/wmts",
    		layer: "ORTHOIMAGERY.ORTHOPHOTOS",
    		matrixSet: "PM",
    		format: "image/jpeg",
    		style: "normal",
    		tileGrid : new ol.tilegrid.WMTS({
    			origin: [-20037508,20037508], // topLeftCorner
    			resolutions: resolutions, // résolutions
    			matrixIds: matrixIds // ids des TileMatrix
    		})
    	}),
    	opacity: 0.7		
    })
    if (ignphotoaerienne) layers.push(ignphotoaerienne);
     
    //Problème avec cette couche ci-dessous
    const adlayer = new ol.layer.Tile({
    	source : new ol.source.TileWMS({
    		url: "https://wxs.ign.fr/inspire/inspire/v/wms",
    		layer: "AD.Address",
    	})
    })
    if (adlayer) layers.push(adlayer);
     
    var map = new ol.Map({
    	layers: layers,
    	target: "map",
    	view: new ol.View({
    		center: ol.proj.fromLonLat([5.717932, 45.195689]),
    		zoom: 17,
    		minZoom: 3,
    		maxZoom: 22
    	})
    });
    /************************* Définitions des cartes Fin *************************/
     
    /************************* ol.Map *************************/
    var map = new ol.Map({
    	layers: layers,
    	target: "map",
    	view: new ol.View({
    		center: ol.proj.fromLonLat([5.717932, 45.195689]),
    		zoom: 17,
    		minZoom: 3,
    		maxZoom: 22
    	})
    });
    /************************* ol.map Fin *************************/

    J'ai ajouté dans le data-key de l'extension OpenLayers 'inspire' si ça pouvait servir, mais ça ne change rien.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="https://ignf.github.io/geoportal-extensions/openlayers-latest/dist/GpPluginOpenLayers.js" data-key="calcul,cartes,inspire"></script>

    Dans les logs, il y a une erreur 403. Apparemment pas d'accès autorisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wms:1 GET https://wxs.ign.fr/inspire/inspire/v/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=636567.5715589486%2C5652518.241688784%2C636720.445615519%2C5652671.115745354
    403 (Forbidden)
    Méthode utilisée avant avec le SDK 'Gp.Services.getConfig' exécuté au lancement du JS, qui fonctionnait très bien avec bien sûr ma clé personnelle associée.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var numeroLayer = new ol.layer.GeoportalWMS({
    	layer: "AD.Address",
    	olParams: {
    		opacity: 1
    	}
    });


    Peut-être que je me trompe totalement sur la méthode d'ajout pour les couches INSPIRE.

    Si vous pouvez m'aider. Merci

  2. #2
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2020
    Messages : 136
    Points : 267
    Points
    267
    Par défaut
    Bonjour,

    Dans la requête qui est faite, il manque le paramètre LAYERS. En l'ajoutant ça fonctionne.

    Par contre je ne comprends pas pourquoi ce paramètre n'est pas ajouté dans la requête générée...

    Cordialement,

  3. #3
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 228
    Points : 286
    Points
    286
    Par défaut Parfait, il manquant effectivement un params avec LAYERS
    Merci azarzelli.

    Parfait, ça fonctionne.

    On peut ajouter un params à la méthode ol.source.TileWMS

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const adlayer = new ol.layer.Tile({
    	source : new ol.source.TileWMS({
    		url: "https://wxs.ign.fr/inspire/inspire/v/wms",
    		params: {'LAYERS': 'AD.Address'}
    	})
    })


    Encore MERCI

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ne pas afficher une couche dans le layer switcher
    Par Mides dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 10/10/2012, 08h16
  2. [MySQL] Afficher une liste de livres avec une rupture par auteur
    Par Ericx_25 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/03/2007, 22h02
  3. [STL]Afficher une liste de listes avec copy
    Par boromir73 dans le forum SL & STL
    Réponses: 3
    Dernier message: 27/10/2006, 15h23
  4. afficher une variable ou chaine avec PLPGSQL
    Par doudoudon dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 14/08/2006, 13h46
  5. Afficher une buffer de pixel avec Direct3D
    Par Black_Daimond dans le forum DirectX
    Réponses: 4
    Dernier message: 27/12/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo