使用Google说明动画驱动器(Google Maps API V3)

时间:2012-04-19 13:59:17

标签: google-maps-api-3

有没有人知道如何在API V3中执行此操作,或者在何处查找有关此选项的信息

http://translate.google.com/translate?hl=en&sl=en&tl=pl&u=http%3A%2F%2Feconym.org.uk%2Fgmap%2F&anno=2

帮帮我吧

2 个答案:

答案 0 :(得分:4)

geocodezip的拉里重新研究了许多经济实例。

http://www.geocodezip.com/v3_animate_marker_directions.html

答案 1 :(得分:2)

在得知这篇文章之前,我想出了一个解决方案。我认为简短而简洁,所以我希望将来能够帮助任何人看到这一点。

第1步:将响应参数从directionsService.route()传递给我称之为driveSim(response)的函数:

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
       directionsDisplay.setDirections(response);
       driveSim(response);
    };
});

第2步:创建标记,其初始位置等于响应初始位置的标记,然后迭代path对象数组中的所有值,就这样。它只是在与任何特定速度无关的固定spped上进行动画处理。如果您希望这样做,只需使用console.log(path);来探索var path对象中的所有数据,您就会发现很容易找出给定速度所需的延迟。

function driveSim (response){
    var path = response.routes[0].overview_path;
    var maxIter=path.length;

    taxiCab=new google.maps.Marker({
       position: path[0],
       map: map, 
    });

    var delay = 20, count = 0;
    function delayed () {
      count += 1;
      taxiCab.setPosition({lat:path[count].lat(),lng:path[count].lng()});
      if (count < maxIter-1) {
        setTimeout(delayed, delay);
      }
    }
    delayed();
}  

AND,就是这样。