Leaflet GeoJSON通过id缩放到标记

时间:2016-03-04 10:43:11

标签: parsing leaflet geojson

我有一个GeoJSON,其中有多个标记放在地图上。

现在我想通过它的id将地图中的视图设置为其中一个标记。

Structs

如何通过ID获取标记然后设置地图视图,以便标记位于中心?

1 个答案:

答案 0 :(得分:1)

将地图视图设置为标记位置(并给定缩放):

map.setView(myMarker.getLatLng(), myZoom);

现在要链接到GeoJSON数据中的标记并通过其ID引用它们,您可以使用多种解决方案。例如。您可以在对象映射中保存功能ID:

var markersById = {};

var markerLayer = L.geoJson(null, {
  pointToLayer: function(feature, latlng) {
    return L.marker(latlng, {});

  },
  onEachFeature: function(feature, layerinfo) {
    if (feature.properties) {
      var content = "<table class='table table-striped table-bordered table-condensed'>" + "<tr><th>Name</th><td>" + feature.properties.name + "<table>";

      layerinfo.bindPopup(content, {
        closeButton: true
      });

      // Save the layer into markersById if it has an id.
      if (feature.properties.id) {
        markersById[feature.properties.id] = layerinfo;
      }
    }
  }
});

然后在想要设置地图视图时参考它:

map.setView(markersById[id].getLatLng(), map.getZoom());

演示:http://jsfiddle.net/ve2huzxw/184/

参考文献: