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は、econymの例の多くを作り直しました。

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 に答える