我正在尝试在“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);
}
方法
drawPolygonGeometry({ol.geom.Polygon},{ol.feature})
无效。但是,当我使用方法
时,它可以工作drawPointGeometry({ol.geom.Point},{ol.feature})
即使flashGeom的类型是 ol.geom.Polygon,我刚从一个范围建立。我不想使用这种方法,因为可以接收多边形的范围,并为多边形的每个点设置动画...
答案 0 :(得分:1)
最后,在分析了OL3中drawPolygonGeometry在源代码中的工作方式之后,我意识到我需要在之前使用此方法应用样式:
vectorContext.setFillStrokeStyle(imageStyle.getFill(),
imageStyle.getStroke());
DrawPointGeometry和drawPolygonGeometry没有使用相同的样式实例。