最近项目用到百度地图,由于司机错误使用导致上传的GPS点天少,两点之间的距离太长没有GPS点,现做了一个小算法来解决此问题(地图视为平面图形)代码如下。
//每1000米算作一个点
var pointA = new BMap.Point(ax,ay); // 创建点坐标A--大渡口区var pointB = new BMap.Point(bx,by); var d = (map.getDistance(pointA,pointB)).toFixed(2);var n = Math.ceil(d/1000); var dx = 1000*(bx - ax)/d;var dy = 1000*(by-ay)/d;alert(dx);var xc = dx + ax;var yc = dy + ay;for(var i=1;i<=n;i++){var xc = i*dx + ax;var yc = i*dy + ay;var new_point = new BMap.Point(xc,yc);var marker = new BMap.Marker(new_point); // 创建标注map.addOverlay(marker); // 将标注添加到地图中map.panTo(new_point);}