我正在使用传单来显示原始行程以找到一些标记。 我用传单折线显示我的行程。 但我希望能够
如何在传单中隐藏和显示折线?
我可以这样做:
$('.leaflet-overlay-pane').hide();
和
$('.leaflet-overlay-pane').show();
但这将显示并隐藏我的所有折线。 我希望能够隐藏并单独显示它们。
感谢。
答案 0 :(得分:7)
如果您有对折线的引用
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.
答案 1 :(得分:0)
在地图上删除和添加对象也会改变图层的顺序(如果图例中有多个图层)。添加的对象将始终位于顶部,而不是原始顺序。我使用setLatLng(标记)和setLatLngs(折线和多边形)来快速完成技巧而不更改顺序。只需在视图外将latLng更改为例如(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)将给出错误。