在传单中隐藏并显示折线?

时间:2013-10-17 09:04:42

标签: leaflet polyline

我正在使用传单来显示原始行程以找到一些标记。 我用传单折线显示我的行程。 但我希望能够

如何在传单中隐藏和显示折线?

我可以这样做:

$('.leaflet-overlay-pane').hide();

$('.leaflet-overlay-pane').show();

但这将显示并隐藏我的所有折线。 我希望能够隐藏并单独显示它们。

感谢。

2 个答案:

答案 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)将给出错误。