将多个功能合并为一个

时间:2019-09-11 10:48:29

标签: javascript jquery openlayers postgis

我有多个openlayer特征/矢量,通过单击它们可以突出显示。

我想将所有矢量合并成一个像轮廓一样的大矢量。想象一个大正方形(它将是合并的vektor),在这个大正方形中有多个较小的正方形(各个向量)。

我试图使用polygon.union()函数将它们合并,但这只是将它们全部高亮显示。

功能是我所有向量都在其中的数组。

var test = null;
for(var j = 0; i < features.length; i++){
                test.union(features[i]);
            }
test.layer.drawFeature(test, 'default');

正如我已经说过的那样,我想在现有矢量的基础上创建一个“包含”所有矢量的形状。我得到的是每个向量都立即突出显示。

1 个答案:

答案 0 :(得分:0)

您要使用ol.geom.geometryCollection类。可以理解,这仅仅是作为单个要素公开的几何的集合,而不是要素的集合。但这似乎可以解决您的问题。

var myarrayofgeoms = [
    new ol.geom.Polygon(somepolycords),
    new ol.geom.Point(somepointcoords)
];

var feature = new ol.Feature({
    geometry: new ol.geom.GeometryCollection(myarrayofgeoms),
    name: 'My Polygon'
});

https://openlayers.org/en/latest/apidoc/module-ol_geom_GeometryCollection-GeometryCollection.html