Geometry Openlayers 3为辅助几何图形设置样式

Geometry Openlayers 3为辅助几何图形设置样式,geometry,openlayers-3,Geometry,Openlayers 3,我有一个特征对象,上面有三个几何体,main和另外两个。在styleFunction过程中,是否有一种设计每个几何图形样式的方法?如果一个是点几何图形,另外两个是线字符串几何图形,我如何在一个styleFunction中设置所有三个的样式 我已经得到了尽可能多的子几何体,styleFunction可以通过调用this.setGeometryName()来切换它们,但在那之后,我有点不知所措——因为此时的点几何体已经被样式化了(有一组样式等待从styleFunction发回) 我是否正确地认为我也

我有一个特征对象,上面有三个几何体,main和另外两个。在styleFunction过程中,是否有一种设计每个几何图形样式的方法?如果一个是点几何图形,另外两个是线字符串几何图形,我如何在一个styleFunction中设置所有三个的样式

我已经得到了尽可能多的子几何体,styleFunction可以通过调用this.setGeometryName()来切换它们,但在那之后,我有点不知所措——因为此时的点几何体已经被样式化了(有一组样式等待从styleFunction发回)


我是否正确地认为我也可以为其他两个几何体设置样式,或者我是否应该使用单独的图层和单独的几何体设置样式(这将增加开销)。

将子几何体添加为特征的命名“集合”(
feature.set()
),然后通过
this.get('name of geometry')调用它们
并将其作为
geometry
参数放入ol.style.style调用中,然后可以为该样式单独设置样式

假设您的子几何体在功能上设置为
subgeom
,则您的样式函数可能如下所示:

function(feature, resolution) {
  return [
    new ol.style.Style({
      // main geometry style
    }),
    new ol.style.Style({
      geometry: feature.get('subgeom'),
      // subgeom style
    })
  ]
}

将子几何体添加为特征的命名“集合”(
feature.set()
),然后通过
this.get('name of geometry')
调用它们,并将其作为
geometry
参数放入ol.style.style调用中,然后您可以为该样式单独设置样式

假设您的子几何体在功能上设置为
subgeom
,则您的样式函数可能如下所示:

function(feature, resolution) {
  return [
    new ol.style.Style({
      // main geometry style
    }),
    new ol.style.Style({
      geometry: feature.get('subgeom'),
      // subgeom style
    })
  ]
}