javascript - 在不占用大量处理器的情况下移动 Google Maps API v3 中的标记?

标签 javascript google-maps animation

我正在尝试移动 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 map 上移动标记的方法似乎非常占用处理器资源。我四处搜索,看看 Google Maps API 是否有一种干净的方法来为标记从 A 点到 B 点的移动设置动画,但找不到任何东西。我发现的其他最常用的执行此操作的方法在 http://www.geocodezip.com/v3_animate_marker_directions.html 中举例说明。但随后使用了我部署的相同方法。

该代码在实践中用于: www.spad.es/random

有没有人有更高效/更清洁的处理方法?

谢谢

最佳答案

这可能是 Canvas 标记的问题。尝试设置 optimized: false 标记选项 - 这会导致标记不呈现为 Canvas 标记。

关于javascript - 在不占用大量处理器的情况下移动 Google Maps API v3 中的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5282173/

相关文章:

javascript - 问题 bootstrap 3 Carousel 将高度更改为 0px,边距更改为 -.....px

javascript - Google map 标记图钉未显示

java - 无法在java中绘制形状

javascript - vue js table 加新行时类似Stack Overflow的高亮效果

animation - 变换 : rotate. 上的 CSS3 动画获取旋转元素当前度数的方法?

javascript - 从数组中仅获取 1 个具有 2 个相似对象的对象

javascript - Youtube 对象 #<S> 没有方法 'playVideo'

android - 如何通过名称指向国家?

ios - Swift - GMSMarker 沿着 GMSPath 的 CLCoords 数组移动(适用于 iOS 的 Google map SDK)

javascript - 我的 PHP 准备语句不起作用(在 bool 值上调用成员函数 bind_param())