1

マーカー (アイコン) をある場所から別の場所に非常にスムーズに移動しようとしています。私はこれを行うのに非常に近いです。API v3 でこのリンクのようなことをしたいです。

これで、2 つの場所からすべての緯度/経度を取得しましたが、まだ滑らかな効果は得られません。次に、2 つの緯度/経度の間のすべての緯度/経度を取得することにしました。たとえば、2 つの場所の間で 1000 の緯度/経度を取得しました。ここで、その 1000 の緯度/経度の最初の緯度/経度から 2 番目の緯度/経度の間の緯度/経度が必要です。これにより、より多くの緯度/経度が得られます。これが私のコードです。

var map, ren, ser;
var data = {};
var marker;
function goma() {
  map = new google.maps.Map(document.getElementById('mappy'), {'zoom':6, 'mapTypeId': google.maps.MapTypeId.ROADMAP, 'center': new google.maps.LatLng(22.05678288577881, 72.30236816615798)});
  ren = new google.maps.DirectionsRenderer( {'draggable':true} );
  ren.setMap(map); 
  ser = new google.maps.DirectionsService();
  google.maps.event.addListener(ren, 'directions_changed', function(event){
    var waypoints = ren.directions.routes[0].legs[0].via_waypoints;
  });
  ser.route({
    'origin': new google.maps.LatLng(22.3000, 70.7800),
    'destination':  new google.maps.LatLng(23.0333, 72.6167),
    'travelMode': google.maps.DirectionsTravelMode.DRIVING},
    function(res,sts) {
      if(sts=='OK')
        ren.setDirections(res);
    })
  }
  function run(i,j) {
    if(i!=0 || j!=0) {
      marker.setMap(null);
    }
    if(i<=ren.directions.routes[0].legs[0].steps.length) {
      if(j==ren.directions.routes[0].legs[0].steps[i].path.length) {
        j=0;
        i++;
      } else {
        j++;
      }
    }
    marker = new google.maps.Marker({
      position: ren.directions.routes[0].legs[0].steps[i].path[j],
      map: map
    });
    marker.setMap(map);
    setTimeout(function() {run(i,j);}, 2000);
  }

それは機能しますが、私が望むようには機能しません。スムーズな効果が欲しいだけでなく、通過した距離と速度も知りたいです。ありがとうございました。

4

0 に答える 0