我正在尝试在GoogleMap上移动标记以模拟实时对象移动.目前我如何做的
JavaScript伪代码是:
var marker = new google.maps.Marker({
position: myLatlng,
map: map
});
var myMovementArray[] = new movementArray(startPoint, endPoint);
drawMovement(int pos){
marker.setPosition(myMovementArray[pos]["lat"], myMovementArray[pos]["lng"]);
pos++;
if (pos < myMovementArray.length()){
setTimeout('drawMovement('+pos+')', 33);
}
}
init(){
drawMovement(0);
}
通过以下方式计算运动数组中的每个元素:
deltaLat = (endPos.lat - startPos.lat)/frames;
deltaLng = (endPos.lng - startPos.lng)/frames;
myMovementArray[i]["lat"] = startPos.lat + (deltaLat * i);
myMovementArray[i]["lng"] = startPos.lng + (deltaLng * i);
作为参考,我正在使用的完整JavaScript文件位于:
http://spad.es/js/com.kamkash.locateme.viewer.dev.js
我遇到的问题是这种在谷歌地图上移动标记的方法似乎是处理器密集型的.我一直在四处寻找,看看Google Maps API是否有一种简洁的动画标记从A点移动到B点的方式,但无法找到任何内容.我发现的另一个最常用的参考方法是在http://www.geocodezip.com/v3_animate_marker_directions.html举例说明,然后使用我部署的相同方法.
该代码在实践中用于:
www.spad.es/random
有没有人有更高效的处理器/清洁方式?
谢谢
最佳答案 这可能是画布标记的问题.尝试设置优化:错误标记选项 – 这会导致标记不呈现为画布标记.