0

是否有一种简单的方法(除了单独获取图层范围并进行计算)对图层进行分组并缩放到最适合在所有分组图层上显示形状的范围?

4

2 回答 2

2

解决方案:

bounds = @get('siblingsLayer').getDataExtent()
bounds.extend(@get('vectorLayer').getDataExtent())
bounds.extend(@get('parentLayer').getDataExtent())

@get('map').zoomToExtent(bounds)
于 2014-05-15T17:37:59.153 回答
0

这个对我有用。

代码:

var allLayers = map.getLayers();
var length = allLayers.getLength();
var layerArray = ['Layer1', 'Layer2', ..., 'LayerN'];
var extent = ol.extent.createEmpty();
for (var i = 0; i < length; i++) {
    var existingLayer = allLayers.item(i);
    for (var j = 0; j < layerArray.length; j++) {
        if (existingLayer.get('title') == layerArray[j]) {
            ol.extent.extend(extent,existingLayer.getSource().getExtent());
        }
    }
}
map.getView().fit(extent, map.getSize());

例子:

我添加了两层并指向其中的一层。

聚焦一层的地图快照

调用 API 后,我的视图更新并集中到两个层:

两个图层都处于焦点的地图快照

于 2022-02-15T05:30:15.743 回答