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

SIG : Système d'information Géographique Discussion :

OpenLayers+zoom : comment récupérer le niveau de zoom et les coordonnées du MapView après des actions de zoom


Sujet :

SIG : Système d'information Géographique

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

    Informations forums :
    Inscription : avril 2009
    Messages : 795
    Points : 296
    Points
    296
    Par défaut OpenLayers+zoom : comment récupérer le niveau de zoom et les coordonnées du MapView après des actions de zoom
    Salut à tous
    J'aimerai pouvoir récupérer le niveau de zoom ainsi que les coordonnées du centre de la carte affichée et ceci après une action de zoom ou de recherche.
    Une idée ?

  2. #2
    Membre habitué
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    février 2011
    Messages
    176
    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 : 176
    Points : 192
    Points
    192
    Par défaut
    Bonjour saxrub,

    Pour ta solution, il te faut la détection d'un event (zoom ou déplacement de la carte)

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    map.on('moveend', function(e) {
        var zoomInfo = map.getView().getZoom(); //valeur de zoom
        var zoomInfo = map.getView().getCenter(); //coordonnées du centre de la carte
        var mapExtent = map.getView().calculateExtent(map.getSize()); Coordonnées de ta carte (bas Gauche, Haut droit)
    }

    Tu peux voir ces fonctions OpenLayers ici

    un exemple de code pour l'event 'moveend' ici

    J'espère que ça répond à ta question.

    Xav

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    avril 2009
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : avril 2009
    Messages : 795
    Points : 296
    Points
    296
    Par défaut
    Trop fort

    Dans le même style, comment intercepter :
    - L'activation/désactivation d'une couche dans le LayerSwitcher ?
    - Le changement d'ordre des couche (drag-drop avec la poignée) ?

  4. #4
    Membre habitué
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    février 2011
    Messages
    176
    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 : 176
    Points : 192
    Points
    192
    Par défaut Pas d'event à ma connaissant - Solution par jquery event 'click'
    Hello,

    Là, ça commence à êtrre plus compliqué, c'est pas vraiment prévu à ma connaissance dans extension OpenLayers.
    Pas d'event qui est capable de récupérer des évènements dans LayerSwitcher (couche : activée et non activée)

    Le seul moyen que j'avais trouvé, c'était de mettre un détecteur d'évènement en jquery.

    Regarde cette exemple de brouillon sur lequel j'avais travaillé.
    Il y a un évènement jquery sur le input (ligne 298)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Détection d'évènement dans LayerSwitcher par jquery
    $(idSwitcher+" .GPlayerBasicTools input").on("click", function(e){
    	console.log("event dans layerswitcher");
    });

    J'avais également ajouté un index sur la ligne de la couche pour me repérer plus facilement. (ligne 271)

    Exemple de test

    Pour la détection du drag&drop, tu dois également pouvoir pareil en jquery.

    L'autre solution est de ne pas utiliser le 'layerswitcher' de l'extension et de le faire soi-même.
    Boulot important, mais ça peut-être plus joli et plus convivial.

    Je te laisse expérimenter déjà ça.

    Xav

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

Discussions similaires

  1. openlayers - zoom entre 2 serverresolution (factionalzoom=true)
    Par pierrick76 dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 15/01/2013, 11h38
  2. comment connaitre le niveau de zoom de la carte ?
    Par arthur007 dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 23/06/2011, 15h53
  3. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 14h20
  4. Réponses: 4
    Dernier message: 17/06/2008, 10h28
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 18h26

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