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 :

API v3: bug dans GeoportalAttribution


Sujet :

IGN API Géoportail

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut API v3: bug dans GeoportalAttribution
    Bonjour,

    En créant une carte contenant à la fois des couches IGN et une couche OpenStreetMap, il semble que le contrôle GeoportalAttribution ne gère pas les attributions de la couche OSM (qui ne sont pas affichées).

    On peut le voir sur cet exemple, qui par défaut affiche uniquement les attributions OSM car il n'y a pas de contrôle GeoportalAttribution intégré:
    http://jsfiddle.net/ignfgeoportail/5...t,js,html,css/

    Si on édite le code JS pour ajouter à la fin de la fonction go():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var ctrl = new ol.control.GeoportalAttribution({
      collapsed : false
    });    
    map.addControl(ctrl);
    Les attributions IGN s'affichent bien, mais celles d'OSM ne s'affichent plus !

    Comment résoudre ce problème ?

    Merci !

  2. #2
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    Bonjour,
    Extrait du chapitre https://geoservices.ign.fr/documenta...eloppement-web
    L’extension Géoportail pour OL3 s’utilise en complément de la bibliothèque open source OpenLayers 3 en étendant ses fonctionnalités à l’ensemble des services proposés par la plateforme Géoportail
    De fait, cela semble normal que la classe GeoportalAttribution permet de disposer des credentials des géoservices de l'IGN et pas d'autres. Le but de l'extension est de permettre de faciliter l'utilisation des géoservices de l'IGN et pas de tous les types de géoservices (Bingmaps, OSM, Google, etc.), même si en grande partie cela facilite bien la vie quelque soit le type de géoservices utilisé. Ce n'est donc pas un bug.

    Donc 3 solutions :
    • Soit vous modifiez la classe GeoportailAttribution pour rajouter d'autres credentials. Pour rappel l'extension géoportail pour OL3 doit être téléchargée et hébergée sur votre serveur, dans sa version stable, car depot.ign.fr n'offre aucune garantie.
    • Soit vous modifiez le CSS pour permettre l'affichage du credential d'OSM. Présentement, il me semble qu'ils se superposent, celui de l'IGN, de par son CSS, étant en première position
    • Soit vous codez tout en OL3


    N'hésitez pas à partager sur le forum le résultat de vos travaux.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai finalement trouvé la solution. Le problème est que le code GeoportalAttribution vide les ol.Attribution des couches non liés au geoportail.

    Il suffit donc de surcharger _updateLayerAttributions comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ol.control.GeoportalAttribution.prototype._updateLayerAttributions = function (layer, mapAttributions, mapExtent, mapCrs, mapZoom) {
            var src = layer.getSource();
    --   src.setAttributions(); 
            var attributions = [];
            var visibility = layer.getVisible();
            var originators = src._originators;
        
    ++       if(typeof originators != 'undefined'){ 
    ++          src.setAttributions();
    ++        }
    
    [reste de la fonction inchangé]
    -> Si src._originators est défini, et uniquement dans ce cas, il s'agit d'une couche géoportail et il faut vider les attributions de cette couche avec src.setAttributions(); Si src._originators n'est pas défini on ne touche pas aux attributions de la source du layer.

    Est-il possible de faire cette modif de votre côté ?

    Merci !

  4. #4
    Membre confirmé Avatar de lboulanger
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 262
    Points : 529
    Points
    529
    Par défaut
    Bonjour,

    Vous avez raison, ce n'est pas normal que le contrôle GeoportalAttribution vide les attributions des autres couches, comme OpenStreetMap, c'est un point qui avait du nous échapper.
    La correction a été apportée dans le code de l'extension pour OpenLayers : https://github.com/IGNF/geoportal-extensions/issues/146.
    Cette correction sera disponible dans la prochaine release des extensions OpenLayers, que nous espérons pouvoir faire prochainement.

    Merci pour votre contribution, et bonne journée,

    Laurane

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut API v3: bug dans GeoportalAttribution
    Merci pour le retour et la correction !

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

Discussions similaires

  1. Classe OpenLayers.Control.zoomIn inexistant dans l'API Géoportail (bug ?)
    Par michael_struyve dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 23/01/2011, 19h34
  2. [2.2.2][Java] Signalement de bug dans l'API
    Par Stephane73 dans le forum BIRT
    Réponses: 2
    Dernier message: 23/06/2008, 09h52
  3. Bug dans l'API rebar ?
    Par Train-train dans le forum MFC
    Réponses: 9
    Dernier message: 05/10/2005, 13h16
  4. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41
  5. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16

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