Ric*_*ard 1 javascript leaflet
我有以下代码使用Mapbox.js将GeoJSON图层添加到地图中(当然这是基于Leaflet.js构建的):
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());
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是GeoJSON可能包含多边形或点,因此Leaflet将图层渲染为路径或标记.当它是多边形(路径)时,一切正常.当它是Points(Markers)时,代码失败e.target.getBounds().
这是可以理解的,因为getBounds它只是Leaf中Leaf的一个方法,而不是Marker上的方法.我猜我可以使用Marker e.target.getLatLng().
但是,如何调整我的代码以检查目标是标记还是路径,并使用正确的方法?
您可以编写一些涉及使用instanceof的代码来检查该层是否是L.Path或L.Marker类的实例.
例如:
if (layer instanceof L.Marker) {
//do something
} else if (layer instanceof L.Path) {
//do something else
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2705 次 |
| 最近记录: |