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 :

new ol.control.Drawing : 4 questions


Sujet :

IGN API Géoportail

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

    Informations forums :
    Inscription : avril 2009
    Messages : 579
    Points : 206
    Points
    206
    Par défaut new ol.control.Drawing : 4 questions
    Bonjour
    J'aimerai ajouter les outils de croquis dans mes cartes.
    J'ai trois questions :
    1 - comment savoir dans l'événement map.on('click', function (evt) {.... que l'outil croquis polygone est actif ?
    2 - comment accéder aux coordonnées des différents sommets du polygone ?
    3 - y-a-t-il une événement qui se déclencherait à la fin du traçage ?
    4 - peut-on prendre la main sur l'événement "Exporter" pour ajouter son propre cod ?
    J'attends de lire vos nombreuses réponses

  2. #2
    Membre averti Avatar de elias couppe
    Homme Profil pro
    Développeur Web
    Inscrit en
    décembre 2014
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : décembre 2014
    Messages : 222
    Points : 371
    Points
    371
    Par défaut
    Je peux vous orienter vers la fonction map.getInteractions() :

    elle renvoie notamment une collection d'interactions actives. Quelque chose qui ressemble à ca :
    Code JAVASCRIPT : 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
     
    disposed_: false
    pendingRemovals_: {}
    dispatching_: {}
    listeners_: {add: Array(1), remove: Array(1)}
    revision_: 0
    ol_uid: "8"
    values_: {length: 9}
    unique_: false
    array_: Array(9)
    0: DragRotate {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    1: DoubleClickZoom {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    2: DragPan {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    3: PinchRotate {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    4: PinchZoom {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    5: KeyboardPan {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    6: KeyboardZoom {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    7: MouseWheelZoom {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    8: DragZoom {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}
    9: Draw {disposed_: false, pendingRemovals_: {}, dispatching_: {}, listeners_: {}, revision_: 0, …}

    Dans votre cas, si le drawing control est actif, une interaction de type Draw sera listée dans le tableau renvoyé. De plus, si par exemple c'est le bouton de tracé de ligne qui est actif, vous pourrez le savoir :

    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type_: "LineString"
    mode_: "LineString"

    De même, à la fin du tracage, l'interaction disparait du tableau. Ca peut être un moyen de détecter la fin du tracage.


    Quand le tracage est terminé, une couche vectorielle est ajoutée à la carte. Elle est accessible via openLayers avec la fonction getLayers().

    Pour accéder à la géométrie d'une couche, vous pouvez par exemple passer par :
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //récupérer la couche voulue (ici la première du tableau)
    var myVectorLayer = map.getLayers().getArray()[0]
    //récupérer la géométrie du premier objet vectoriel de la couche (on pourra faire une boucle sur les features pour récupérer toutes les géométries...)
    myVectorLayer.getSource().getFeatures()[0].getGeometry()

Discussions similaires

  1. API V3 ol.control.Drawing
    Par michelD13 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 20/03/2017, 17h17
  2. API v3 ol.control.Drawing
    Par michelD13 dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 16/02/2017, 22h51
  3. Réponses: 6
    Dernier message: 07/12/2016, 16h43
  4. Controle de saisie, question simple
    Par Fabious62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/01/2007, 18h41
  5. Réponses: 3
    Dernier message: 11/05/2004, 19h39

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