【问题标题】:How to add a point to leaflet that should be on map but invisible?如何在传单上添加一个应该在地图上但不可见的点?
【发布时间】:2016-03-30 22:57:57
【问题描述】:

在显示搜索结果时,人们通常希望在同一张地图上查看所有结果以及请求的元素。

为此,我将搜索到的点添加到同一层并使用fitBounds 方法,如下所示:

map.fitBounds(markerLayer.getBounds().pad(0.10));

现在,问题是我的标记在地图上仍然可见,但不应该如此。是否可以隐藏/切换单个标记的可见性?

到目前为止尝试过:

  • 将不透明度设置为 0。标记确实不可见,但光标在悬停时仍会发生变化,您仍然可以单击它。
  • 在单独的图层中设置请求的城市标记。没用,因为您无法获得多个图层的边界,即使您将这些图层分组到 LayerGroup,您也无法获得它的边界。

【问题讨论】:

    标签: leaflet mapbox


    【解决方案1】:

    您可以设置标记的不透明度:

    markerLayer.setOpacity(0);
    

    (见http://leafletjs.com/reference.html#marker-setopacity


    编辑:

    如果您不希望它可点击,您可以在创建标记时使用clickable 选项:

    var markerLayer = L.marker([0, 0], { clickable: false });
    

    (见http://leafletjs.com/reference.html#marker-clickable

    【讨论】:

    • 这可行,但该项目仍可点击,并且指针在悬停时会发生变化。
    • 是的,因为该问题专门询问有关切换可见性的问题。如果您希望它看起来并且表现得好像它不存在,最简单的选择肯定是从地图中删除标记? map.removeLayer(markerLayer)
    • 不,因为,这意味着,我将失去我不想要的图层的所有点。而且你无法获得多层的界限......
    • 在 Leaflet 中,标记是一个图层。图层没有点。每个点都显示为一个标记,每个标记都是它自己的图层,可以通过将其传递给map.addLayer()map.removeLayer() 来“切换”。
    • 哦,很好。不知道一个简单的标记是一个图层。这确实很容易!
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 2017-01-13
    • 2012-07-17
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多