Leaflet:隐藏/显示动态插入地图的标记

时间:2017-06-30 15:29:29

标签: javascript jquery class leaflet show-hide

我正在插入这样的地图点:

function getPoints() {
  $.getJSON("get_users.php", function (data) {
    for (var i = 0; i < data.length; i++) {
      var location = new L.LatLng(data[i].lat, data[i].lng);
      var name = data[i].name;
      var website = data[i].website;
      var teste = "teste" + website;

      var marker = new L.Marker(location, {
        icon: tree1
      });
      marker.bindPopup("<a onclick='info()' style='font-size:18px; font-style: italic; font-family:courier; cursor: pointer;'>" + name + "</a><p>" + city + "</p><p id='inf' style='display:none;'>" + website + "</p><p style='font-size:10px;'>" + location + "</p>", {maxWidth: '400'});
      users.addLayer(marker);
    }
  }).complete(function() {
    if (firstLoad == true) {
      map.fitBounds(users.getBounds());
      firstLoad = false;
    };
  });
}

我希望用户能够只看到标记,例如使用类“foo”,使用javascript来隐藏没有该类的点。

我的问题是我无法为标记指定一个类..我试过了:

使用JQuery:$(marker._icon).addClass(foo)$(marker).addClass('foo')

DomUtil:DomUtil.addClass(marker, 'foo')marker = L.DomUtil.addClass(marker, 'foo')

我做错了宣布上课吗?请纠正我!

2 个答案:

答案 0 :(得分:1)

虽然Leaflet确实使用DOM元素在地图上渲染标记,但它提供了自己的操作方式。

不是依赖于类,而是将您的标记添加到图层组中,您可以像其他图层一样使用Leaflet进行操作。您可以addTo映射并映射removeLayer所需的组以显示/隐藏其包含的标记。

答案 1 :(得分:1)

您可以使用标记创建一个LayerGroups数组,然后使用子数组,您只能放置要显示的标记,并随时删除和添加