Openlayers 3 自定义多边形符号器

Openlayers 3 custom polygon symbolizer

是否可以将要素的符号化为多边形? 例如,Openlayers 3 有一个 ol.style.Circle and ol.style.RegularShape 符号。是否有等同于假设的 ol.style.Polygon 的东西?您可以从哪里制作多点动态符号器?

我想要这样做的原因是因为我的地图上有标记,这些标记根据该标记的数据动态调整形状。可以在每个点简单地绘制一个 ol.geom.Polygon,但它们不是缩放独立的。我想要具有缩放独立的标记,这意味着它们在屏幕上的大小在我放大或缩小时不会改变。

需要说明的是,使用光栅图像(例如 ol.style.Icon)是不可能的。我的项目中有太多形状和颜色的标记。

是的,这是可能的。 ol.style.Style 采用 geometry 参数,您可以使用该参数覆盖用于渲染要素的几何体。

var style = function(feature, resolution) {
  // construct the polygon taking the resolution into account
  var polygon = new ol.geom.Polygon(...);

  return [
    new ol.style.Style({
      geometry: polygon,
      stroke: ...
      fill: ...
    }),
  ];
};

又见这个问题: