Javascript OpenLayers 3获取列表中所有功能内容的范围

Javascript OpenLayers 3获取列表中所有功能内容的范围,javascript,openlayers-3,Javascript,Openlayers 3,我想放大列表中包含的所有功能的范围 首先,我将我的功能放在一个列表中: selectedFeatures = []; vector2.getSource().forEachFeature(function(feature) { var att = feature.get("NOM"); if (att == strUser) { selectedFeatures.push(featur

我想放大列表中包含的所有功能的范围

首先,我将我的功能放在一个列表中:

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);

有人有一个解决方案来获取列表中包含的功能的范围吗?

这样就可以了吗

var extent = features[0].getGeometry().getExtent().slice(0);
features.forEach(function(feature){ ol.extent.extend(extent,feature.getGeometry().getExtent())});

可以更新为使用for循环,该循环跳过迭代步骤中的第一个元素“Features”=我的功能列表(selectedFeatures)?如果是这样的话,在你的第一行就不行了。它告诉我getExtent()不是一个函数。对不起,复制粘贴有点太快了。记住要检查功能是否有超过0个元素等等。实际上
vectorSource.getExtent()
应该可以正常工作。功能的坐标可能有问题吗?我选择的功能有问题。我能够获得每个功能的范围,但一旦我将它们放在我的“selectedFeatures”列表中,我就很难获得有关此功能的信息。当我在一个新的矢量源上添加特性时,可能是我做错了什么??(我的数据是GeoJSON格式)也许你可以创建一个JSFIDLE,其中包含一些你有这个问题的功能?知道你使用的OpenLayers 3的哪个版本可能也很有用。我有3.4.0版本,我会寻找一个JSFIDLE,我从来没有玩过它