0

有谁知道如何在 API V3 中执行此操作,或者在哪里可以找到有关此选项的信息

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

请帮帮我

4

2 回答 2

4

geocodezip 的 Larry 重新处理了许多经济名称示例。

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

于 2012-04-19T14:02:49.603 回答
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对象数组中的所有值,仅此而已。它只是以与任何特定速度无关的固定速度对其进行动画处理。如果您希望这样做,只需使用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();
}  

而且,就是这样。

于 2014-08-13T06:23:47.410 回答