And*_*ols 3 javascript openlayers-3
我有一张 OpenLayers3 地图,由 OSM Tile 图层和一个或多个矢量图层组成。我可以使用将地图缩放为单层
vector.addEventListener("change", function() {
map.getView().fitExtent(vectorSource.getExtent(), map.getSize());
});
Run Code Online (Sandbox Code Playgroud)
这有效。但是,如果我尝试在添加图层的循环中使用以下内容缩放以覆盖多个图层
vector.addEventListener("change", function () {
if (bounds == null) {
bounds = vectorSource.getExtent();
} else {
bounds = bounds.extend(vectorSource.getExtent());
}
map.getView().fitExtent(bounds, map.getSize());
});
Run Code Online (Sandbox Code Playgroud)
如果在循环外部声明边界,则具有单层的地图将继续工作。但是,如果层数超过一层,则 else 块中的代码会给出错误“未定义不是函数”。
根据文档getExtent() 返回一个范围对象,并且该范围对象有一个扩展方法,所以我不确定为什么会出现此错误。
在我解决问题时回答自己的问题。我错误地使用了扩展。正确的代码是:
vector.addEventListener("change", function () {
if (bounds == null) {
bounds = vectorSource.getExtent();
} else {
bounds = ol.extent.extend(bounds, vectorSource.getExtent());
}
map.getView().fitExtent(bounds, map.getSize());
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |