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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 12 November 2012 13:09

Daemons
Participant occasionnel
Lieu: Nice
Date d'inscription: 15 Dec 2011
Messages: 23

Requêtes sur WMTS Géoportail / OpenLayers

Bonjour,

Suite à la mise à jour de l'API Géoportail de l'IGN, l'appel à l'API et l'utilisation des couches a complètement été modifié. Le SIG web que j'avais développé n'est plus compatible avec cette nouvelle version, je lance donc un petit appel à l'aide pour essayer de mieux y voir, surtout avec l'insertion des couches WMTS.

Pour ma carte, j'utilise un client GeoExt / Openlayers, et je n'utilise pas de "viewerDiv" tel qu'il est présenté sur la documentation de l'API Géoportail. Je crée un array de layers, que j'ajoute ensuite dans ma carte. J'appelle donc l'API de la manière suivante :

Code:

<script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/2.0.0beta/GeoportalExtended.js"><!-- --></script>

Puis j'utilise les fonctions données par la documentation loadAPI() et checkApiLoading(). J'ai modifié le code pour que sur un succès, la fonction loadAPI() n'éxécute pas de fonction comme sur l'exemple de la documentation :

Code:

Geoportal.GeoRMHandler.getConfig([apiKey], null, null, null);

Jusque là, pas de problème. Lorsque je veux intégrer une nouvelle couche du Géoportail dans ma carte, je la définis alors ainsi :

Code:

var orthos = new Geoportal.Layer.WMTS({
        name:'Carte IGN',
        url: gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey].resources['GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC'].url,
        layer:'GEOGRAPHICALGRIDSYSTEMS.MAPS',
        style:'_null',
        matrixSet:'EPSG:900913',
        format:"image/jpeg",
        projection:new OpenLayers.Projection('EPSG:900913')
    });

Premier problème : gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey] undefined (merci Firebug), je dois donc utiliser Firebug pour "naviguer" dans l'objet (qui existe pourtant bien) et récupérer l'url de requête. J'obtiens donc une url, la même pour toute mes couches, et je redéfinis mon layer (avec ma propre valeur d'apiKey):

Code:

var orthos = new Geoportal.Layer.WMTS({
        name:'Carte IGN',
        url:'http://gpp3-wxs.ign.fr/apiKey/geoportail/wmts',
        layer:'GEOGRAPHICALGRIDSYSTEMS.MAPS',
        style:'_null',
        matrixSet:'EPSG:900913',
        format:"image/jpeg",
        projection:new OpenLayers.Projection('EPSG:900913')
    });

C'est bien reconnu, mon SIG web se charge, mais là... pas de fond de carte Géoportail ! La faute est à l'objet matrix et le format WMTS. Et là, la documentation n'est pas super complète...

Si quelqu'un peut éclairer ma lanterne sur ces deux problèmes :
- l'url des layers innaccessible avec gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey].(...),mais pourtant ok "à la main" avec Firebug
- la requête sur l'ortho ou le scan du Géoportail et l'utilisation des matrix

Merci !

Gabriel

Hors ligne

 

#2 Mon 12 November 2012 13:37

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Requêtes sur WMTS Géoportail / OpenLayers

Bonjour,

Je n'ai pas la solution même si j'ai rapidement investigué là dessus la semaine dernière. Pour ma part il s'agissait d'utiliser mapproxy mais le problème est identique au tiens.

Quelques remarques :
*style:'_null', => je crois que la valeur est "normal"
*matrixSet:'EPSG:900913', => bizarre car les couches du geoportail sont en 3857 hmm et le matrixSet devrait avoir la valeur "PM" non ? wink

Idéalement en effet l'IGN pourrait publier sa configuration mais il est possible qu'elle soit différente pour chaque niveau de zoom (le standard WMTS le permet), dans ce cas il faut passer par un GetCapabilities du WMTS dans OpenLayers pour configurer facilement l'objet.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 12 November 2012 14:17

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Requêtes sur WMTS Géoportail / OpenLayers

Bonjour,
Avec le WMTS, pas besoin de charger l'API Géoportail.
Pour scan et ortho directement dans Openlayers

Code:

var ign_options = {
    name: "IGN - cartes",
    url: "http://gpp3-wxs.ign.fr/" + my_key + "/wmts",
    layer: "GEOGRAPHICALGRIDSYSTEMS.MAPS",
    matrixSet: "PM",
    style: "normal",
    numZoomLevels: 19,
    group : 'IGN',
    attribution: '&copy;IGN <a href="http://www.geoportail.fr/" target="_blank"><img src="http://api.ign.fr/geoportail/api/js/2.0.0beta/theme/geoportal/img/logo_gp.gif"></a> <a href="http://www.geoportail.gouv.fr/depot/api/cgu/licAPI_CGUF.pdf" alt="TOS" title="TOS" target="_blank">Terms of Service</a>'
};

var ign_scans = new OpenLayers.Layer.WMTS(ign_options);

//Changement des options nécessaires pour l'ortho
ign_options.name = "IGN - vue aérienne";
ign_options.layer = "ORTHOIMAGERY.ORTHOPHOTOS";
ign_options.numZoomLevels = 20;
var ign_orthos = new OpenLayers.Layer.WMTS(ign_options);
    
map.addLayers([ign_scans, ign_orthos]);

Dernière modification par Cornet Jérémie (Mon 12 November 2012 14:17)

Hors ligne

 

#4 Tue 13 November 2012 10:40

Daemons
Participant occasionnel
Lieu: Nice
Date d'inscription: 15 Dec 2011
Messages: 23

Re: Requêtes sur WMTS Géoportail / OpenLayers

Merci Jérémie, ca marche mieux !! Je n'ai plus qu'un problème pour centrer ma carte maintenant... La projection OpenLayers.Projection("IGNF:GEOPORTALFXX") est-elle toujours conseillée pour afficher des tuiles du Géoportail, ou peut-on paramétrer notre carte autrement ?

J'ai essayé d'accéder au GetCapabilities du Géoportail avec http://gpp3-wxs.ign.fr/apiKey/wmts?requ … pabilities mais sans succès (OperationNotSupported).

Yves, pour les paramètres de matrixSet, matrixId, etc, j'avais copié ca d'un exemple sur le site de l'API... Qui n'était pas la meilleure configuration, apparemment wink

Hors ligne

 

#5 Tue 13 November 2012 10:43

Daemons
Participant occasionnel
Lieu: Nice
Date d'inscription: 15 Dec 2011
Messages: 23

Re: Requêtes sur WMTS Géoportail / OpenLayers

Au temps pour moi, le GetCapabilities se fait avec http://gpp3-wxs.ign.fr/6t5dppo062i0miv4 … pabilities
ll me manquait juste le service=WMTS

Hors ligne

 

#6 Tue 13 November 2012 16:51

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Requêtes sur WMTS Géoportail / OpenLayers

Oui, j'avais oublié de préciser que le WMTS est fourni uniquement en mercator (epsg : 3857 comme le disait Yves).

Ils ont fait le choix d'une compatibilité immédiate avec les autres flux (openstreetmap, google maps...).

Hors ligne

 

#7 Mon 19 November 2012 12:21

Daemons
Participant occasionnel
Lieu: Nice
Date d'inscription: 15 Dec 2011
Messages: 23

Re: Requêtes sur WMTS Géoportail / OpenLayers

Parfait, ca tourne bien maintenant, merci ! smile

Mais je rajouterai un petit commentaire : il faut bien avoir deux clé avec le Géoportail, pour cette nouvelle version. Une clé de développement qui ne fonctionnera qu'en localhost, sur api.ign.fr, et une clé de production pour faire des requêtes depuis un autre serveur, que l'on obtient sur professionnels.ign.fr

J'écrirai peut être un petit tuto sur la chose, à l'occasion wink

Hors ligne

 

#8 Tue 07 January 2014 14:47

simeric
Participant assidu
Date d'inscription: 10 Mar 2009
Messages: 255

Re: Requêtes sur WMTS Géoportail / OpenLayers

bonjour
des petits tuto sont téléchargeables ici.
Testé avec Géoconcept, ça marche bien
http://api.ign.fr/assistance#wmts

Hors ligne

 

Pied de page des forums

Powered by FluxBB