Openlayers 3设计辅助几何体

时间:2015-07-01 12:49:56

标签: geometry openlayers-3

我有一个有三个几何图形的特征​​对象,主要和另外两个。有没有一种方法可以在styleFunction传递上设置每个几何体的样式?如果一个是点几何,另外两个是线串几何,我如何在一个styleFunction中设置所有三个样式?

我已经有了子几何可用,而且styleFunction可以通过调用this.setGeometryName()来切换它们,但之后我有点难过 - 因为此时的点几何已经已设置样式(有一系列样式等待从styleFunction发回)。

我认为我可以设置其他两个几何图形,或者我应该有一个单独的几何图层并单独设置它们(这会增加开销)。

1 个答案:

答案 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
    })
  ]
}