通过onclick使用locate的HTML代码

时间:2017-03-22 01:04:06

标签: javascript html leaflet sidebar locate

我正在尝试在单击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>

1 个答案:

答案 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()需要对函数的引用,而不是函数调用的结果。