Openlayers 3 使用';DrawPolygongGeometry()和#x27;带vectorContext的postCompose事件

Openlayers 3 使用';DrawPolygongGeometry()和#x27;带vectorContext的postCompose事件,openlayers-3,Openlayers 3,在一个名为“postcompose”的活动中,我试图围绕每种几何体(可以是每种ol.geom类型:点、多边形等)画一个圆。其目的是在选定某个特征时创建动画 listenerKeys.push(map.on('postcompose', goog.bind(this.draw_, this, data))); this.draw_ = function(data, postComposeRender){ var extent = feature.getGeometry().get

在一个名为“postcompose”的活动中,我试图围绕每种几何体(可以是每种ol.geom类型:点、多边形等)画一个圆。其目的是在选定某个特征时创建动画

listenerKeys.push(map.on('postcompose',
    goog.bind(this.draw_, this, data)));

 this.draw_ = function(data, postComposeRender){
   var extent = feature.getGeometry().getExtent();
   var flashGeom = new ol.geom.Polygon.fromExtent(extent);
   var vectorContext = postComposeRender.vectorContext;

   ...//ANIMATION CODE TO GET THE RADIUS WITH THE ELAPSED TIME

   var imageStyle = this.getStyleSquare_(radius, opacity);
   vectorContext.setImageStyle(imageStyle);
   vectorContext.drawPolygonGeometry(flashGeom, null);
 }
方法

绘图多边形几何({ol.geom.Polygon},{ol.feature})

它不起作用。但是,当我使用该方法时,它是有效的

drawPointGeometry({ol.geom.Point},{ol.feature})

即使flashGeom的类型是
我刚刚从一个范围构建的ol.geom.Polygon。我不想使用此方法,因为可以接收多边形的范围,并为多边形的每个点设置动画…

最后,在源代码中分析了OL3中DrawPolygongGeometry的工作方式后,我意识到我需要在以下情况之前使用此方法应用样式:

vectorContext.setFillStrokeStyle(imageStyle.getFill(), 
  imageStyle.getStroke());
DrawPointGeometry和DrawPolygongGeometry不使用相同的样式实例