【发布时间】:2015-05-03 20:05:58
【问题描述】:
我想放大列表中包含的所有要素的范围。
首先,我将我的功能放在一个列表中:
selectedFeatures = [];
vector2.getSource().forEachFeature(function(feature) {
var att = feature.get("NOM");
if (att == strUser) {
selectedFeatures.push(feature);
}
});
其次,这是我的问题...我想放大列表“selectedFeatures”中所有功能的范围
我试试这个,但总是给我无限的回报:
var vectorSource = new ol.source.Vector({
projection: 'EPSG:3857',
features: selectedFeatures //add an array of features
});
var dataExtent = vectorSource.getExtent();
map.getView().fitExtent(dataExtent, map.getSize())
console.log("Extents : " + dataExtent);
有人有解决方案来获取列表中包含的功能范围吗?
【问题讨论】:
-
实际上
vectorSource.getExtent()应该可以正常工作。你的特征坐标可能有问题吗? -
我选择的功能有问题。我能够获得每个功能的范围,但是一旦我将它们放在我的列表“selectedFeatures”中,我就无法获取有关此功能的信息。当我在新的矢量源上添加功能时,我可能做错了吗? (我的数据是GeoJSON格式)
-
也许您可以创建一个 JSFiddle,其中包含一些您遇到此问题的功能?
-
了解您使用的 OpenLayers 3 版本可能也很有用。
-
我有 3.4.0 版本,我会寻找一个 JSFiddle,我从来没有玩过它