【问题标题】:hide and show a polyline in leaflet?在传单中隐藏和显示折线?
【发布时间】:2013-10-25 16:26:48
【问题描述】:

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

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

我能做到:

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

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

但这会显示和隐藏我所有的折线。 我希望能够分别隐藏和显示它们。

谢谢。

【问题讨论】:

    标签: leaflet polyline


    【解决方案1】:

    如果你有对折线的引用

    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.
    

    【讨论】:

      【解决方案2】:

      在地图上删除和添加对象也会改变图层的顺序(如果您的图例中有多个图层)。添加的对象将始终位于顶部而不是原始顺序。我使用 setLatLng (标记)和 setLatLngs (折线和多边形)来做一个快速的技巧而不改变顺序。只需将 latLngs 更改为您的视图之外的例如 (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) 会出错。

      【讨论】:

        猜你喜欢
        • 2021-10-10
        • 1970-01-01
        • 2013-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-28
        • 2012-08-17
        相关资源
        最近更新 更多