【发布时间】:2015-06-15 16:31:53
【问题描述】:
我有以下代码使用 Mapbox.js(当然是在 Leaflet.js 上构建的)将 GeoJSON 图层添加到地图:
var orgLayer = L.geoJson(boundaries, {
onEachFeature: onEachFeature
});
this.layerGroup.addLayer(orgLayer);
function onEachFeature(feature, layer) {
layer.on('click', zoomToFeature, _this);
}
function zoomToFeature(e) {
this.map.fitBounds(e.target.getBounds());
}
我遇到的问题是 GeoJSON 可能由多边形或点组成,因此 Leaflet 将图层呈现为路径或标记。当它是多边形(路径)时,这一切都很好。当它是点(标记)时,代码在e.target.getBounds() 上失败。
这是可以理解的,因为getBounds 只是 Leaflet 中 Path 上的一个方法,而不是 Marker 上的一个方法。我想我可以使用 e.target.getLatLng() 标记。
但是,如何调整我的代码以检查目标是标记还是路径,并使用正确的方法?
【问题讨论】:
标签: javascript leaflet