是否可以在openlayers中为现有的线串添加点数?当我们到达客户端时,我有一个来自服务器的点流。目前,我能看到这样做的唯一方法是从每次收到的最后一点到新点时画一条线,如下所示:
Drawer.prototype.drawPoint = function(point)
{
var line = new OpenLayers.Geometry.LineString([this.lastPoint, point]);
var lineFeature = new OpenLayers.Feature.Vector(line, null, this.style);
this.lineLayer.addFeatures([lineFeature]);
this.lastPoint = point;
}
这似乎效率低下。显然,我可以保留所有点的数组,并在每次出现新点时重新绘制整行,但这似乎效率低下。
答案 0 :(得分:5)
OpenLayers.Geometry.LineString
通过其派生的addPoint(point, index)
类有一个方法OpenLayers.Geometry.MultiPoint
,请查看source code。
所以你的解决方案应该简单:
line.addPoint(point); //second parameter(index) is optional
您可能还需要在图层上调用redraw()
方法。