我使用leaflet.locate和传单路由机来显示我沿路线的位置。我的问题是,当我重新创建路线时,蓝色位置点位于由传单路由机器生成的路线下方。如何确保位置点位于路径图层上方?
以下代码似乎不起作用。
var myLocationControl = L.control.locate({follow: true, stopFollowingOnDrag: true, keepCurrentZoomLevel: true,
showPopup: true, remainActive: true,
strings: {
title: "Track Location",
metersUnit: "meters",
feetUnit: "feet"
outsideMapBoundsMsg: "You seem located outside the boundaries of the map" // default message for onLocationOutsideMapBounds
}, locateOptions: {enableHighAccuracy: true}}).addTo(map);
//Put on top
myLocationControl.setZIndexOffset(2000);
我也试过这个:
myLocationControl._circle.bringToFront();
myLocationControl._marker.bringToFront();
答案 0 :(得分:0)
Leaflet.Locate
使用L.Path
绘制圆圈,而圆圈又使用SVG元素。 SVG元素没有z-index
属性,因此,您无法使用setZIndex()
或setZIndexOffset()
等方法。
我唯一能建议的是在添加所有路径图层后使用L.Path.bringToFront()
方法。这是一个例子:
var locate = L.control.locate();
//later, after you add all the layers
locate._circle.bringToFront();
locate._marker.bringToFront();
或者您可以为每个添加的路线拨打bringToBack()
。