openlayers3线段添加闪烁_在OpenLayers 3中动态地添加和删除轨道段

I want to display a track in real-time with OpenLayers 3 which disolves at the end, just like a snails trail.

Only appending new coordinates to a LineString is easy. See this example. But removing coordinates from the end of the line does not seem to be supported by the API.

How should I go about that? Is extending the LineString class the only option? Or should I use a separate feature for each line segment?

Update:

I used this code with ol-debug.js. But get/setFlatCoordinates is not exported in the compiled version.

var flatCoordinates = geometry.getFlatCoordinates(); // not exported

if (flatCoordinates && flatCoordinates.length > 100) {

// remove first coordinate elements from array

flatCoordinates.splice(0, geometry.getStride());

// call push with coordinate elements as arguments

Array.prototype.push.apply(flatCoordinates, coordinate);

// update coordinates calling change()

geometry.setFlatCoordinates(geometry.getLayout(), flatCoordinates);

}

else {

geometry.appendCoordinate(coordinate);

}

解决方案

The appendCoordinate method is a shortcut for the fairly common use case of adding a coordinate to the end of a LineString. To modify geometries with more control, set your desired coordinates with setCoordinates.

var maxCoords = 100;

var coords = lineString.getCoordinates(); // get coordinate array

coords.unshift(newCoord); // add to beginning of array

if (coords.length > maxCoords) {

coords.length = maxCoords;

}

lineString.setCoordinates(coords);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值