我正在使用传单显示原始行程以前往一些标记。我用传单折线展示我的行程。但我希望能够
如何在传单中隐藏和显示折线?
我可以做这个 :
$('.leaflet-overlay-pane').hide();
和
$('.leaflet-overlay-pane').show();
但这会显示和隐藏我所有的折线。我希望能够分别隐藏和显示它们。
谢谢。
如果您有对折线的引用
var polyline = L.polyline(...);
然后你可以使用
map.addLayer(polyline);//For show
map.removeLayer(polyline);// For hide
目前我认为没有只隐藏/显示的本地方法,也许在 0.7 版本中
其他解决方案是在维护者的旧评论中访问对象容器
I don't think there's an easy solution, for tile layers at least. :( I'll try to handle this sooner.
For vectors, you can change path._container.style.display, and for markers - marker._image.style.display and marker._shadow.style.display.
在地图上删除和添加对象也会改变图层的顺序(如果您的图例中有多个)。添加的对象将始终位于顶部而不是原始顺序。我使用 setLatLng (标记)和 setLatLngs (折线和多边形)来做一个快速的技巧而不改变顺序。只需将 latLngs 更改为您视图之外的 eg(1000,1000) 即可。
var myLatLng0 = L.latLng(1000,1000);
var myObject = L.marker(myLatLng,{....}); myObject.latlng = myLatLng;
或 var myObject = L.polygon(myPath,{....}); myObject.path = myPath;
隐藏/显示标记:
myObject.setLatLng(myLatLng0); myObject.setLatLng(myObject.latlng);
隐藏/显示折线或多边形:
myObject.setLatLngs(myLatLng0); myObject.setLatLngs(myObject.path);
注意:隐藏折线和多边形也适用于 setLatLngs(false)。标记的 setLatLng(false) 会出错。