我正在尝试在单击html侧边栏中的标记图标时激活定位器插件。我想在点击时使用定位器功能而不将定位器插件添加到地图中。下面的代码将fa-map-marker图标添加到侧边栏,当您单击图标时,它会将定位器控件添加到传单贴图中。单击添加的图标后,它将使用L.control.locate函数。而不是将定位器插件添加到我的地图,我可以通过onclick以某种方式使用定位器的功能吗?最终结果将允许用户通过单击fa-map-marker图标直接获取其位置。
侧栏-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>
答案 0 :(得分:1)
让我从leaflet-locatecontrol
documentation ...
例如,您可以在定位控制对象上调用
start()
或stop()
来设置页面加载的位置。// create control and add to map var lc = L.control.locate().addTo(map); // request location update and set location lc.start();
想要将其附加到某些DOM元素的click
事件中吗?没问题......
<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 );
请注意()
上缺少lc.start
- 这是因为L.DomEvent.on()
需要对函数的引用,而不是函数调用的结果。