我有一个有三个几何图形的特征对象,主要和另外两个。有没有一种方法可以在styleFunction传递上设置每个几何体的样式?如果一个是点几何,另外两个是线串几何,我如何在一个styleFunction中设置所有三个样式?
我已经有了子几何可用,而且styleFunction可以通过调用this.setGeometryName()来切换它们,但之后我有点难过 - 因为此时的点几何已经已设置样式(有一系列样式等待从styleFunction发回)。
我认为我可以设置其他两个几何图形,或者我应该有一个单独的几何图层并单独设置它们(这会增加开销)。
答案 0 :(得分:0)
将子几何图形添加为要素(feature.set()
)的命名“集合”,然后通过this.get('name of geometry')
调用它们并将其作为geometry
放入ol.style.Style调用中参数,然后您可以为该样式单独设置样式。
假设您的子图表在功能上设置为subgeom
,您的styleFunction可能如下所示:
function(feature, resolution) {
return [
new ol.style.Style({
// main geometry style
}),
new ol.style.Style({
geometry: feature.get('subgeom'),
// subgeom style
})
]
}