我有一个GeoJSON,其中有多个标记放在地图上。
现在我想通过它的id将地图中的视图设置为其中一个标记。
Structs
如何通过ID获取标记然后设置地图视图,以便标记位于中心?
答案 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/
参考文献:
map.setView()
使用给定的动画选项设置地图视图(地理中心和缩放)。map.getZoom()
返回地图视图的当前缩放。myMarker.getLatLng()
返回标记的当前地理位置。