#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
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 et le matrixSet devrait avoir la valeur "PM" non ?
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: '©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
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 !
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
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