2017-03-22 2 views
0

J'essaie d'activer le plugin locator en cliquant sur l'icône du marqueur dans ma barre latérale html. Je voudrais utiliser la fonction de localisateur lorsque vous cliquez dessus sans ajouter le plugin de localisation à la carte. Ce code ci-dessous ajoute l'icône fa-map-marker à la barre latérale et, lorsque vous cliquez sur l'icône, il ajoute le contrôle du localisateur à la carte du leaflet. Une fois que vous avez cliqué sur l'icône ajoutée, elle utilise la fonction L.control.locate. Au lieu d'ajouter le plugin de localisation à ma carte, puis-je utiliser la fonction du localisateur via onclick? Le résultat final permettra à l'utilisateur d'obtenir directement sa position en cliquant sur l'icône de fa-map-marker.Code HTML pour l'utilisation de locate via onclick

Sidebar-v2: https://github.com/Turbo87/sidebar-v2

L.control.locate: https://github.com/domoritz/leaflet-locatecontrol

<div class="sidebar-tabs"> 
    <ul role="tablist"> 
    <li> 
     <a 
     title="Geolocate" role="tab" target="_blank" onClick="L.control.locate().addTo(map);" <i class="fa fa-map-marker"> </i> 
     </a> 
    </li> 
    </ul> 
</div> 
+1

La question est très floue. Veuillez ajouter un code plus complet et des détails sur ce que vous essayez d'accomplir. –

+0

@AJFunk - Le fait que la question soit étiquetée [leaflet] aide-t-il? (Pas de sarcasme ... Je ne sais pas ...) – JDB

Répondre

1

Permettez-moi de copier-coller de la leaflet-locatecontrol documentation ...

Vous pouvez appeler start() ou stop() sur l'objet de contrôle de localisation pour définir l'emplacement sur le chargement de la page par exemple.

// create control and add to map 
var lc = L.control.locate().addTo(map); 

// request location update and set location 
lc.start(); 

à joindre à l'événement que click d'un élément DOM? Pas de problème ...

<a href='' id='foobar'>Try to get my location</a> 

var lc = L.control.locate().addTo(map); 
L.DomEvent.on(document.getElementById('foobar'), 'click', lc.start); 

Notez l'absence de () sur lc.start - c'est parce que L.DomEvent.on() a besoin d'une référence à une fonction, et non le résultat d'un appel de fonction.

+0

Merci! Travaillé parfaitement! ^^ – sergey

+0

Comment ferais-je pour les fonctions qui ne fonctionnent pas avec .start. Par exemple, le contrôle de la mesure.https: //github.com/ljagis/leaflet-measure – sergey