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 :

Adaptation de geoportalMap_kml.html en beta5


Sujet :

IGN API Géoportail

  1. #1
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut Adaptation de geoportalMap_kml.html en beta5
    Chers Mga_geo et dgrichard, mes deux auditeurs favoris, pardonnez ma nullité et mon insistance !
    J'essaye de reprendre l'exemple http://atlasnw.free.fr/geoportail/ap...alMap_kml.html qui m'inspire quelques perspectives intéressantes, mais je bute sur des incompréhensions liées à mes faibles connaissances pour l'adapter à mes besoins

    Dans la séquence qui gère le survol à savoir :
    var selectS100Opts= OpenLayers.Util.extend( viewer.getMap().getPopupDefaults('KML'), {});
    var selectS100= new OpenLayers.Control.SelectFeature(s100, selectS100Opts);
    viewer.getMap().addControl(selectS100);
    // activate clic and zoom to extent when layer gets visible:
    var onvc= function(e) {
    if (e.property && e.property=="visibility") {
    if (this.layer==e.layer) {
    if (this.layer.visibility) {
    this.activate();
    if (this.layer.features.length>0) {
    this.layer.map.zoomToExtent(this.layer.maxExtent,true)
    }
    } else {
    this.deactivate();
    }
    }
    }
    };
    s100.map.events.on({"changelayer":onvc, scope:selectS100});
    Je n'arrive pas à remplacer l'affichage des popups d'origine suite à un click par une autre fonction de mon cru (par exemple alert("coucou")), tout en gardant les fonctions liées au survol...

    Comment m'y prendre?
    Et sur Openlayers.org, je m'y perds très rapidement

    Merci

  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
    Dans les lignes précédentes seules les lignes suivantes sont vraiment d'importance pour ton problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var selectS100Opts= OpenLayers.Util.extend( viewer.getMap().getPopupDefaults('KML'), {});
            var selectS100= new OpenLayers.Control.SelectFeature(s100, selectS100Opts);
            viewer.getMap().addControl(selectS100);
    les autres, tu peux les enlever.

    Ceci écrit, qu'est-ce que cela fait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var selectS100Opts= OpenLayers.Util.extend( viewer.getMap().getPopupDefaults('KML'), {});
    On crée un objet dont les valeurs sont :

    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
                {
                    multipleKey: null,
                    toggleKey: null,
                    multiple: false,
                    clickout: true,
                    toggle: true,
                    hover: false,
                    highlightOnly: false,
                    box: false,
                    onBeforeSelect: function() {},
                    onSelect: Geoportal.Control.selectFeature,
                    onUnselect: Geoportal.Control.unselectFeature,
                    scope: null,
                    geometryTypes: null,
                    callbacks: null,
                    selectStyle: null,
                    renderIntent: "select"
                };
    Cet objet est ensuite utilisé pour faire un contrôle de sélection, il te suffit donc « d'écraser » les propriétés ad hoc comme onSelect, onUnselect ...

  3. #3
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Merci Didier pour cette réponse qui m'a débloqué...
    Mais il me vient une autre question liée sur le registre : "Ne donnez pas du poisson aux affamés, mais apprenez leur à pêcher"
    D'ou tires-tu les propriétés (dont certaines d'ailleurs, me sont obscures!) de l'objet? Si c'est public, peux-tu nous donner l'adresse, comme cela pour un prochain problème...

    Ce n'est pas sur https://api.ign.fr/geoportail/api/doc/1.0beta4/jsdoc/index.html ????

  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
    Il y a plusieurs sources qui ne donnent pas le même niveau d'information

    • la documentation en ligne sur le site API donne les points d'entrée (il faudrait l'améliorer certes), mais c'est un début;
    • les exemples donnent un aperçu de comment faire;
    • le code source de l'API permet, quant la documentation n'est pas suffisante, d'apprendre comment cela fonctionne (j'effectue toujours les recherches dans cet ordre avec OpenLayers);
    • enfin, un bon déboggeur aide (Firebug, <F12> d'IE8, etc ...).


    C'est donc beaucoup de travail perso pour « apprendre à pêcher »

    Tu découvriras alors que les fameuses propriétés sont dans le code source d'OpenLayers dans la classe OpenLayers.Control.SelectFeature : toutes les propriétés ne sont pas forcément explicites, des fois la lecture du code en fait apparaître

  5. #5
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Pour faciliter la tache aux copains: voyez http://dev.openlayers.org/releases/O...eature-js.html

    Merci didier

  6. #6
    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 cmail Voir le message
    Merci didier
    De rien, pas de [résolu] ?

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

Discussions similaires

  1. adaptation de geoportalMap_selectMultiLayers.html
    Par cmail dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 24/02/2010, 13h44
  2. externalGraphic: dans geoportalMap_kml.html
    Par cmail dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 07/02/2010, 15h26
  3. Zoom avec geoportalMap_kml.html
    Par cmail dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 07/02/2010, 15h09
  4. Réponses: 2
    Dernier message: 22/12/2009, 23h21
  5. [1.0beta4] Exemple geoportalMap_kml.html
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 20/05/2009, 23h00

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