我有多个开放层特征/向量,单击其中一个会突出显示。
我想将我拥有的所有向量合并成一个大向量,就像一个轮廓。想象一个大正方形(这将是合并的 vektor(,在这个大正方形中有多个较小的正方形(个体向量(。
我尝试使用 polygon.union(( 函数合并它们,但这只会单独突出显示它们。
特征是我的数组,所有向量都在其中。
var test = null;
for(var j = 0; i < features.length; i++){
test.union(features[i]);
}
test.layer.drawFeature(test, 'default');
正如我所说,我想从我现有的向量上创建一个形状,"包含"所有这些向量。我得到的是一次突出显示的每个矢量。
您想要使用 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