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 :

Clic sur KML innopérant après zoom de la carte


Sujet :

IGN API Géoportail

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 869
    Points : 371
    Points
    371
    Par défaut Clic sur KML innopérant après zoom de la carte
    Salut à tous
    J'ai une page qui affiche 3 fichiers KML, chacun répondant à des actions clic différentes.
    Tout va bien tant que je ne fais pas un zoom sur la carte avec la souris en traçant un rectangle cible (si je zoome avec les touches - et +, pas de problème). Dès lors, après être repassé en mode 'sélection', les clic sur les repères kml sont inactifs.
    Une idée ?
    Pascal

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 45
    Points : 63
    Points
    63
    Par défaut
    En effet, on retrouve ce comportement dans les exemples en ligne de l'API.
    Je vais regarder çà plus en détail. Je pense que ça vient d'un problème de handler.

  3. #3
    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 m_robert Voir le message
    En effet, on retrouve ce comportement dans les exemples en ligne de l'API.
    Lesquels ?

    geoportalMap_kml.html, geoportalMap_gpx.html, geoportalMap_wfs.html (même principe) et geoportalMap_selectMultiLayers.html fonctionnent correctement sous FF 3.5.x (Linux)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 45
    Points : 63
    Points
    63
    Par défaut geoportalMap_kml et geoporalMap_gpx
    Pour geoportalMap_kml et geoporalMap_gpx :
    si on consulte la popup d'information sur un point, que l'on sélectionne ensuite l'outil zoomBox, puis que l'on resélectionne l'outil de déplacement; alors, la consultation de la fiche du point par click ne fonctionne plus sous FF3.6.8.

  5. #5
    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 m_robert Voir le message
    Pour geoportalMap_kml et geoporalMap_gpx :
    si on consulte la popup d'information sur un point, que l'on sélectionne ensuite l'outil zoomBox, puis que l'on resélectionne l'outil de déplacement; alors, la consultation de la fiche du point par click ne fonctionne plus sous FF3.6.8.
    Ok, bug reproduit. Un clic (déactivation/réactivation) sur la couche remet les choses en ordre. C'est donc que les contrôleurs de sélection de couches sont désactivés (car ils restent actifs après le passage en ZoomBox) lors du passage ZoomBox->Pan reste à savoir pourquoi ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 45
    Points : 63
    Points
    63
    Par défaut triggerCallBack de OpenLayers.Handler.Feature
    Le problème est dans la méthode triggerCallBack de OpenLayers.Handler.Feature.

    C'est le calcul de l'écart en pixel entre le clic et le laché de la souris (variable dpx) qui pose problème. Apparemment, le problème vient de la variable this.down.xy.

    Ce problème a déjà été relevé : http://www.mail-archive.com/users@op.../msg13401.html.

    Je cherche maintenant une solution, peut-être qu'un patch OpenLayers existe déjà.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 45
    Points : 63
    Points
    63
    Par défaut remise à null après calcul de la variable this.down
    Je n'ai pas trouvé de patch officiel concernant ce problème...
    Je propose tout de même une solution (peut-être pas la plus élégante) :

    Dans OverloadedOpenLayersStandard.js, il faut surcharger la méthode triggerCallBack() de la classe OpenLayers.Handler.Feature. et ajouter la remise à null de la variable this.down après le calcul .

    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
    OpenLayers.Handler.Feature.prototype.triggerCallback = function(type, mode, args) {
            var key = this.EVENTMAP[type][mode];
            if(key) {
                if(type == 'click' && this.up && this.down) {
                    // for click/clickout, only trigger callback if tolerance is met
                    var dpx = Math.sqrt(
                        Math.pow(this.up.x - this.down.x, 2) +
                        Math.pow(this.up.y - this.down.y, 2)
                    );
                    if(dpx <= this.clickTolerance) {
                        this.callback(key, args);
                    }
                    this.down = null; //résolution du problème de calcul de dpx
                } else {
                    this.callback(key, args);
                }
            }
        };
    Avec ce petit changement, la popup s'ouvre bien à chaque clic sur les repères KML.

  8. #8
    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 Admiratif

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par m_robert Voir le message
    Avec ce petit changement, la popup s'ouvre bien à chaque clic sur les repères KML.
    Je confirme (pour des GPX, dans mon cas).
    Merci!

  10. #10
    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
    [Résolu] ?

Discussions similaires

  1. Zoom après un clic sur marqueur
    Par Zebulon777 dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 17/12/2012, 13h55
  2. problème clic sur kml après changement de niveau de zoom
    Par ocelcr dans le forum IGN API Géoportail
    Réponses: 7
    Dernier message: 17/03/2012, 10h30
  3. Créer une zone visible qu'après un clic sur une zone
    Par spec10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/11/2006, 04h00
  4. Réponses: 11
    Dernier message: 11/08/2006, 16h52
  5. [JSP] Réaliser un traitement après clic sur un lien donné
    Par Ataman dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 25/06/2006, 10h42

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