#1 Tue 05 August 2008 16:52
- marjal_
- Participant occasionnel
- Date d'inscription: 26 Jul 2008
- Messages: 14
mesure distance openlayers
Bonjour,
voilà, j'aimerais rajouter un outil permettant de visualiser la distance entre deux points sur ma carte OpenLayers.
En cherchant dans les libraires d'images, j eme suis aperçue que mesauring-stick-on.png représente une règle. Mais, je n'ai pas trouver les boutons de control utilisant cette image... La fonction existe-telle ou faut il la créer soit même?
Dans ce cas, avez vous des extraits de code me permettant de rajouter cette fonction à ma carte? Je me suis renseigner, il faut que j'utilise la propriété getLength(). J'utilise le Control.EditingToolbar ce qui me permet d'avoir les outils de dessin. Mais comment accéder à l'élément (une ligne tracée par l'utilisateur) dont on veut connaitre la longueur?
Merci de votre réponse!
Hors ligne
#2 Tue 05 August 2008 19:39
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: mesure distance openlayers
TonControl.layer.Features[0].geometry.getLength()
Est une possibilité mais étudie bien le fonctionnement du control d'édition de sorte qu'un seul objet (feature) à la fois soit ajouté à la couche associé à ton control.
Hors ligne
#3 Tue 05 August 2008 19:48
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: mesure distance openlayers
tu peux aussi créer un control :
Code:
new OpenLayers.Control.DrawFeature(vectors, OpenLayers.Handler.Path)
où
Code:
vectors = new OpenLayers.Layer.Vector("Vector Layer");
et auquel tu ajoutes des listeners au évènements featureadded et featuremodified, genre :
Code:
vectors.events.on({ "featuremodified": report, "featureadded": report }); function report(event) { alert(event.feature.geometry.getLength()); }
Hors ligne
#4 Wed 06 August 2008 13:29
- ranalisolofo.larrys
- Participant occasionnel
- Lieu: Ambolonkandrina
- Date d'inscription: 19 Jul 2007
- Messages: 40
- Site web
Re: mesure distance openlayers
Tu peux regarder dans le sandbox suivant un plugin de measure :
http://dev.openlayers.org/sandbox/timan … Measure.js
Et un petit exemple de son utilisation ici :
http://trac.openlayers.org/browser/sand … l?rev=7541
Hors ligne