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 :

Chargement de l'autoconf suite aux changements d'URL IGN


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Chargement de l'autoconf suite aux changements d'URL IGN
    Bonjour,

    Nous utilisons l'extension Géoportail pour OpenLayers avec une clé privée. Notre application web charge un fichier autoconf via l'url https://wxs.ign.fr/maclé/autoconf?gp-access-lib=2.0.0

    J'étudie l'impact de la mise en place des nouveaux services IGN : https://geoservices.ign.fr/services-web

    Le 1er impact est que certaines couches que j'utilise se trouve dans plusieurs services : essentiels et experts.

    1ère question : avec la mise en place des nouveaux services, faut-il charger plusieurs fichiers d'autoconf (un pour les couches essentiels, et un pour les couches experts). J'ai pu trouver ces deux URLs : https://wxs.ign.fr/essentiels/autoco...cess-lib=2.0.0 et https://wxs.ign.fr/administratif/aut...cess-lib=2.0.0

    2ème question : s'il faut bien charger 2 fichiers d'autoconf, je crains que cela pose problème au niveau du code car il me semble que l'extension n'accepte qu'un seul fichier de conf. Est-ce que mon analyse est correct ? Si oui, comment faire svp ? (ci-dessous un exemple du code utilisé actuellement)

    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
      private async initAutoconfiguration(ignApiKey: string, geoproxyUrl?: string) {
        // Récupération de l'accessToken pour l'ajouter dans les headers de la requête
        const token = await this.keycloakService.getToken();
        Services.getConfig({
          apiKey: ignApiKey,
          timeOut: 40000,
          serverUrl: geoproxyUrl ? UrlUtils.buildGeoproxyUrl(geoproxyUrl) + '/autoconfig'  : undefined,
          onSuccess: () => {
            this.autoconfigReady.next(true);
          },
          headers: { Authorization: `Bearer ${token}` },
          protocol: 'XHR',
        });
     
        this.onAutoconfigReady().subscribe(
          (ready) => ready && this.loaderService.hide(this.LOADER_ID)
        );
      }

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 868
    Points : 371
    Points
    371
    Par défaut
    Bonjour
    dans le post Web services gratuits et extensions Openlayers ou Leaflet , Elias Couppe a annoncé qu'une modification de l'API permettra de passer plusieurs clés.
    Quand ? Mystère mais ça me tarde car la deadline de février 2022 est bientôt la.
    A suivre

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Nous continuons l'analyse et pour le fichier d'autoconf, nous pouvons en récupérer un avec l'ensemble des clés utilisées : https://wxs.ign.fr/essentiels/autoco...cto,essentiels

    Néanmoins, le problème de l'extension géoportail persiste car il n'accepte à priori (on continue notre étude) qu'une clé, voici un exemple du code trouvée qui montre cela :

    https://github.com/IGNF/geoportal-ex...tManagement.js

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                } else {
                    // si l'autoconfiguration est chargée,
                    // on recupere la clef API, et on en profitera ensuite pour controler
                    // les droits sur les ressources.
     
                    // FIXME par defaut, on recupere toujours la première...
                    _key = Object.keys(Config.configuration.generalOptions.apiKeys)[0];
                    logger.log(_key);
                }
            }

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Nous avons fait un fork de l'extension géoportail et en y mettant le code de la pull request : https://github.com/IGNF/geoportal-extensions/pull/310 (fichier CheckRightManagement.js et Config.js), l'application tourne comme avec l'ancienne clé

  5. #5
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    132
    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 : 132
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    La mise à jour permettant d'utiliser plusieurs clefs est disponible dans la dernière version de l'access-lib et des extensions (openlayers et leaflet). Elle arrivera prochainement dans le SDK.

    Cordialement,

  6. #6
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    216
    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 : 216
    Points : 270
    Points
    270
    Par défaut control.GeoportalMousePosition (avec altitude) et control.SearchEngine
    Bonjour,

    actuellement, pour utilisé les controles coordonnées et recherche (control.GeoportalMousePosition avec alitude et control.SearchEngine), je suis obligé de charger :
    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
    62
    63
    64
    65
     
    function geoservicesReady() {
    	var coordControl = 1; //Flag pour ajouter ou no le widget des coordonnées
    	if (coordControl) {
    		/************************* GeoportalMousePosition OL IGN *************************/
    		//Afficher le controle de positionnement avec altitude
    		var geoMPControl = new ol.control.GeoportalMousePosition({
    			editCoordinates : true,
    			"collapsed" : false,
    			"graggable" : true,
    			"displayCoordinates" : true,
    			"displayAltitude" : true,
    			"altitude" : {
    				"triggerDelay" : 100,
    				"responseDelay" : 500,
    				"noDataValue" : -99999,
    				"noDataValueTolerance" : 99000,
    				"serviceOptions" : {}
    			},
    			"systems" : [
    			{
    				"crs" : "EPSG:4326",
    				"label" : "Géographiques",
    				"type" : "Geographical"
    			},
    			{
    				"crs" : "EPSG:3857",
    				"label" : "Web Mercator",
    				"type" : "Metric"
    			},
    			{
    				"label" : "Lambert 93",
    				"crs" : "EPSG:2154",
    				"type" : "Metric",
    				"geoBBox" : {
    					"left" : -9.86,
    					"bottom" : 41.15,
    					"right" : 10.38,
    					"top" : 51.56
    				}
    			}
    			],
    			"units" : ["DEC", "DMS"]
    		});
    		map.addControl(geoMPControl);
    		/************************* GeoportalMousePosition OL IGN *************************/
    	}
     
    	var searchControl = 1;  //Flag pour ajouter ou non le widget de recherche
    	if (searchControl) {
    		/************************* Recherche adresse IGN *************************/
    		var geoSE = new ol.control.SearchEngine({
    			collapsed : true,
    			geocodeOptions : {},
    			autocompleteOptions : {}
    		});
    		map.addControl(geoSE);
    		/************************* Recherche adresse IGN FIN *************************/
    	}
    }
     
    Gp.Services.getConfig({
        	apiKey: "essentiels",
        	onSuccess: geoservicesReady //fonction 
    });

    Est-ce qu'il n'est pas possible avec votre dernière mise à jour de l'extension IGN openlayers de le faire directement ?

    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="???"></script>

    Merci pour vos réponses.

    Cordialement

    Xav

  7. #7
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    132
    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 : 132
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    Pour faire simple, dans le tag data-key, vous pouvez mettre plusieurs clefs séparées par une virgule. Par exemple :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="https://ignf.github.io/geoportal-extensions/openlayers-latest/dist/GpPluginOpenLayers.js" data-key="maclef,essentiels,administratif,calcul"></script>

  8. #8
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    216
    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 : 216
    Points : 270
    Points
    270
    Par défaut Pas mieux
    Bonjour,

    c'est bien ce que j'avais compris et fait, mais sans succès.
    Les controles GeoportalMousePosition (altitude - No rights!) et SearchEngine (pas de recherche possible) sont bien affichés, mais non fonctionnels.

    Alors que si juste avant, je lance le Gp.Services.getConfig avec la clé 'essentiels', ça fonctionne parfaitement.

    Si vous avez une idée, je suis preneur.

    Cordialement

    Xav

  9. #9
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    132
    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 : 132
    Points : 257
    Points
    257
    Par défaut
    Et est-ce que ça fonctionne en ajoutant la clef 'calcul' ?

  10. #10
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    216
    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 : 216
    Points : 270
    Points
    270
    Par défaut Avec ou sans clé pas vu de différence
    Bonjour azarzelli,

    J'avais déjà essayé plusieurs combinaisons, dont celle-ci.

    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="essentiels,calcul"></script>

    Finalement, avec ou sans clé sur l'extension IGN OpenLayers, je ne vois pas de différence.

    Merci pour vos recherches

  11. #11
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    132
    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 : 132
    Points : 257
    Points
    257
    Par défaut
    Je viens de créer un JSFiddle très simple avec un chargement contenant plusieurs clefs, et ça fonctionne... étrange !

    https://jsfiddle.net/ignfgeoportail/2k9Ldmhq/

  12. #12
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    132
    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 : 132
    Points : 257
    Points
    257
    Par défaut
    Autre information, faire à la fois un Gp.Services.getConfig et utiliser le data-key ferait une sorte de "double emploi" : les 2 choses font appel à la même fonction derrière... Il y a peut-être un souci de ce côté là.

    Pour utiliser plusieurs clefs avec le getConfig :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var options = {
                apiKey : "clé1,clé2,clé3",
                onSuccess : function (response) {
                    print(response);
                }
            };
    Gp.Services.getConfig(options);

  13. #13
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    216
    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 : 216
    Points : 270
    Points
    270
    Par défaut Ok, compris - Pb window.onload = function ()
    Merci pour ton exemple.

    En fait, je pense que j'ajoutais les différents control, mais l'API n'était pas totalement chargé, donc ça posait problème.

    J'ai ajouté un 'window.onload = function () {' avec l'ajout des différents controles et ça a l'air de fonctionner.

    Merci pour tes tests.

    Xav

  14. #14
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    216
    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 : 216
    Points : 270
    Points
    270
    Par défaut
    Merci azarzelli, ça fonctionne très bien avec window.load. (Normal, j'aurais pu y penser)

    Top !

    Xav

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/05/2013, 17h41
  2. Réponses: 3
    Dernier message: 30/06/2008, 23h52
  3. disparition texte suite a changement checkbox
    Par duga dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/05/2006, 12h55
  4. Réponses: 3
    Dernier message: 21/04/2006, 13h13
  5. Réponses: 2
    Dernier message: 01/12/2005, 21h09

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