Openlayers 3 Openlayers 3自定义多边形符号器

Openlayers 3 Openlayers 3自定义多边形符号器,openlayers-3,Openlayers 3,是否可以将特征的符号化为多边形? 例如,Openlayers 3具有和符号。是否存在与假设的ol.style.Polygon等效的东西?你可以从多个点制作一个动态符号 我之所以要这样做,是因为我的地图上有标记,这些标记是根据该标记的数据动态形成的。可以在每个点简单地绘制一个ol.geom.Polygon,但它们不是独立于缩放的。我希望标记与缩放无关,这意味着当我放大或缩小时,它们在屏幕上的大小不会改变 需要明确的是,例如在中使用光栅图像是不可能的。我的项目中有太多的标记,太多的形状和颜色。是的,

是否可以将特征的符号化为多边形? 例如,Openlayers 3具有和符号。是否存在与假设的ol.style.Polygon等效的东西?你可以从多个点制作一个动态符号

我之所以要这样做,是因为我的地图上有标记,这些标记是根据该标记的数据动态形成的。可以在每个点简单地绘制一个ol.geom.Polygon,但它们不是独立于缩放的。我希望标记与缩放无关,这意味着当我放大或缩小时,它们在屏幕上的大小不会改变

需要明确的是,例如在中使用光栅图像是不可能的。我的项目中有太多的标记,太多的形状和颜色。

是的,这是可能的。获取可用于覆盖用于渲染要素的几何体的几何体参数

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: ...
    }),
  ];
};

也可以看到这个问题:

谢谢,但是假设有很多标记。考虑到用户每次放大和缩小时都会为相同的标记创建几何体这一事实,这是否仍然可以很好且有效地工作?是的,从性能角度来看,如果渲染x点或x多边形,这将产生不同。也许可以在要素上缓存多边形,并且仅在分辨率更改时更新坐标,以减少创建和处置的对象数量。或者你也可以玩造型。例如,如果您被缩小并看到许多特征,可能只显示点样式而不是多边形。谢谢您的建议。使用几何体作为样式似乎是一种可行的方法。但是,为了证实我最初的想法,您认为有一个ol.style.Polygon类作为OL3团队的请求是否有意义?是的,类似ol.style.Polygon的类可以用于绘制任意形状。请随意打开车票: