3

是否可以将点添加到 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;
}

这似乎效率低下。显然,我可以保留所有点的数组并在每次出现新点时重新绘制整条线,但这似乎也效率低下。

4

1 回答 1

5

OpenLayers.Geometry.LineStringaddPoint(point, index)通过它派生的类有一个方法OpenLayers.Geometry.MultiPoint,看看源代码

所以你的解决方案应该很简单:

line.addPoint(point); //second parameter(index) is optional

您可能还需要redraw()在图层上调用方法。

于 2012-10-12T09:02:30.220 回答