我有多个openlayer特征/矢量,通过单击它们可以突出显示。
我想将所有矢量合并成一个像轮廓一样的大矢量。想象一个大正方形(它将是合并的vektor),在这个大正方形中有多个较小的正方形(各个向量)。
我试图使用polygon.union()函数将它们合并,但这只是将它们全部高亮显示。
功能是我所有向量都在其中的数组。
var test = null;
for(var j = 0; i < features.length; i++){
test.union(features[i]);
}
test.layer.drawFeature(test, 'default');
正如我已经说过的那样,我想在现有矢量的基础上创建一个“包含”所有矢量的形状。我得到的是每个向量都立即突出显示。
答案 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