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 :

Question sur l'API "minimum"


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Question sur l'API "minimum"
    Bonjours,

    Voici quelques interrogations sur l'API minimum :

    1. Pourquoi l'api minimale n'intègre pas le contrôle "Geoportal.Control.Logo" permettant d'afficher les "originators" ?

    2. Si je souhaite afficher plusieurs calques je dois pour chacun ajouter une clef par "GeoRM: Geoportal.GeoRMHandler.addKey(...)" ou il y a moyen de factoriser ? Quel en est l'impacte sur le décompte du nombre d'accès relatifs à la licence ? (je veux dire par là, est-ce qu'à chaque utilisation de "addKey()" ça compte pour 1 au niveau de la licence)

    3. Pourquoi avoir un "Catalogue" orienté ouvertement vers le fonctionnement de l'API standard / étendue ? Je pense notamment à la fonction "getLayerParameters" qui ne peux fonctionné que si l'on travail avec les couches cachées de territoires mais pas si l'on veux avoir une couche réel en mode baseLayer.

    Merci pour les éventuelles réponses.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    Voici quelques interrogations sur l'API minimum :

    1. Pourquoi l'api minimale n'intègre pas le contrôle "Geoportal.Control.Logo" permettant d'afficher les "originators" ?
    Je prend note, on pourrait rajouter ce contrôle effectivement.

    Citation Envoyé par shama Voir le message

    2. Si je souhaite afficher plusieurs calques je dois pour chacun ajouter une clef par "GeoRM: Geoportal.GeoRMHandler.addKey(...)" ou il y a moyen de factoriser ? Quel en est l'impacte sur le décompte du nombre d'accès relatifs à la licence ? (je veux dire par là, est-ce qu'à chaque utilisation de "addKey()" ça compte pour 1 au niveau de la licence)
    Mais non, cette factorisation est faîte par l'API standard et étendue : c'est une factorisation du code (au lieu d'une duplication des appels à addKey()) pas de session.

    Dans tous les cas, addKey() ne fait que lier la clef à la couche. FULL STOP.

    Citation Envoyé par shama Voir le message
    3. Pourquoi avoir un "Catalogue" orienté ouvertement vers le fonctionnement de l'API standard / étendue ? Je pense notamment à la fonction "getLayerParameters" qui ne peux fonctionné que si l'on travail avec les couches cachées de territoires mais pas si l'on veux avoir une couche réel en mode baseLayer.
    Bonne pioche, il faudrait réfléchir à cela ...
    Je m'orientais plus vers une utilisation de l'opération GetCapabilities du WMSC plutôt qu'à un déplacement de Geoportal.Catalogue vers l'API minimale.
    A voir donc.

    Citation Envoyé par shama Voir le message
    Merci pour les éventuelles réponses.
    Comme si je répondais pas à chaque fois

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Merci pour vos réponses et oui je sais fort bien que vous êtes présent et actif

    Citation Envoyé par dgrichard Voir le message
    Bonne pioche, il faudrait réfléchir à cela ...
    Je m'orientais plus vers une utilisation de l'opération GetCapabilities du WMSC plutôt qu'à un déplacement de Geoportal.Catalogue vers l'API minimale.
    A voir donc.
    Si le GetCapabilities du WMSC sortait les "bounds" correctement ce serait intéressant (et j'ai déjà pratiqué), mais entre la correction (restrictions) des bounds, les "originators", etc. y'a quand même pas mal du truc fait par le Catalogue.js qui sont hors scope du WMSC pour un meilleur confort d'utilisation.
    Perso je suis partit pour me faire une classe "Geoportal.Layer.Geoportal" étendant "Geoportal.Layer.WMC" (fournie dans le minimal) permettant de créer simplement une layer en passant pour arguments:
    - 1 un nom de carte + territoire (ex: 'ORTHOIMAGERY.ORTHOPHOTOS:GLP')
    - 2 un objet de configuration (options pouvant contenir apiKey sinon le 1er trouvé sera utilisé)

    Pour mémoire, le Catalogue est déjà présent dans l'API minimale ainsi que les controls TermsOfService et PermanentLogo

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    Si le GetCapabilities du WMSC sortait les "bounds" correctement ce serait intéressant (et j'ai déjà pratiqué), mais entre la correction (restrictions) des bounds, les "originators", etc. y'a quand même pas mal du truc fait par le Catalogue.js qui sont hors scope du WMSC pour un meilleur confort d'utilisation.
    Tout à fait, c'est la différence entre le service et ses métadonnées et le client avec ses caractéristiques !
    C'est un bon argument pour ne pas passer par le GetCapabilities

    Citation Envoyé par shama Voir le message
    Perso je suis partit pour me faire une classe "Geoportal.Layer.Geoportal" étendant "Geoportal.Layer.WMC" (fournie dans le minimal) permettant de créer simplement une layer en passant pour arguments:
    - 1 un nom de carte + territoire (ex: 'ORTHOIMAGERY.ORTHOPHOTOS:GLP')
    - 2 un objet de configuration (options pouvant contenir apiKey sinon le 1er trouvé sera utilisé)
    Ok

    Citation Envoyé par shama Voir le message
    Pour mémoire, le Catalogue est déjà présent dans l'API minimale ainsi que les controls TermsOfService et PermanentLogo
    Oui, mon clavier a fourché ... D'autant plus que j'étais en train de "réécrire" l'exemple geoportalMinimum.html pour montrer comment utiliser Geoportal.Catalogue

    Le voici joint
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Super
    Vous venez de me faire gagner un temps précieux !!! Merci beaucoup

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    C'est re-moi avec une question un peu bête...
    Y'a-t-il un moyen d'activer le remplacement des tuiles non disponibles (suivant le zoom entre Wallis & Futuana par exemple) par l'image (photo barrée + zoom -) ?

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    C'est re-moi avec une question un peu bête...
    Y'a-t-il un moyen d'activer le remplacement des tuiles non disponibles (suivant le zoom entre Wallis & Futuana par exemple) par l'image (photo barrée + zoom -) ?
    Le plus simple avec l'API minimale est de jouer sur la propriété onLoadError (OpenLayers 2.9 mais déjà embarquée) des OpenLayers.Layer.* à leur construction :

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    onLoadError: function() {
      if (this.src.match(/^http:\/\/[a-z0-9-]+\.ign\.fr\//)) {
        if (this.src.match(/TRANSPARENT=true/i)) {
          this.src= Geoportal.Util.getImagesLocation()+'nodata.gif';
        } else {
          this.src= Geoportal.Util.getImagesLocation()+'nodata.jpg';
        }
      } else {
        this.style.backgroundColor= OpenLayers.Util.onImageLoadErrorColor;
      }
    }
    Les API standard et étendu font de même, mais en surchargeant la méthode OpenLayers.Util.onImageLoadError, qui s'applique à toutes les couches !

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Merci.

    A noter que j'ai quand même du faire un overload sur le script Util d'OpenLayers un peu comme cela est fait sur l'API standard et étendue

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    Merci.

    A noter que j'ai quand même du faire un overload sur le script Util d'OpenLayers un peu comme cela est fait sur l'API standard et étendue
    Lequel ?

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Dans Util.js
    Code : 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
    OpenLayers.Util.onImageLoadError = function() {
      this._attempts = (this._attempts) ? (this._attempts + 1) : 1;
      if (this._attempts <= OpenLayers.IMAGE_RELOAD_ATTEMPTS) {
        var urls = this.urls;
        if (urls && urls instanceof Array && urls.length > 1){
          var src = this.src.toString();
          var current_url, k;
          for (k = 0; current_url = urls[k]; k++){
            if(src.indexOf(current_url) != -1){
              break;
            }
          }
          var guess = Math.floor(urls.length * Math.random());
          var new_url = urls[guess];
          k = 0;
          while(new_url == current_url && k++ < 4){
            guess = Math.floor(urls.length * Math.random());
            new_url = urls[guess];
          }
          this.src = src.replace(current_url, new_url);
        } else {
          this.src = this.src;
        }
      } else {
        if (this.layer.onLoadError)
          this.src= this.layer.onLoadError(this.src);
        else
          OpenLayers.Element.addClass(this, "olImageLoadError");
      }
      this.style.display = "";
    };
    Grosso-modo juste un test à la fin pour savoir si la layer a une gestion du onLoadError

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    Dans Util.js
    Grosso-modo juste un test à la fin pour savoir si la layer a une gestion du onLoadError
    Ok, merci

Discussions similaires

  1. [OpenGL] Petite question sur l'API
    Par Fabien Henon dans le forum OpenGL
    Réponses: 7
    Dernier message: 16/01/2008, 23h27
  2. [C++] 2 petites questions sur l'API Windows
    Par Fabien Henon dans le forum Windows
    Réponses: 15
    Dernier message: 25/12/2007, 11h54
  3. 2 questions sur l'API java
    Par ®om dans le forum Langage
    Réponses: 8
    Dernier message: 28/07/2006, 09h09

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