Как медленно перемещать маркер в последнем API Google Map

Я создаю веб-приложение, в котором одним рейсом нужно лететь из одного места в другое. Сейчас я строю аэропорты и размещаю самолеты в качестве маркера, как перемещать маркер своего самолета из одного места в другое.

1 ответ

Решение

Вы можете достичь этого, используя следующее:

  var lineSymbol = {
    path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
    scale: 3, // change the size
    strokeColor: '#393'
  };

Вы должны будете изменить это самостоятельно, если вам нужен самолет и т. Д.

Затем вам нужно реализовать полилинию, чтобы она выполнялась следующим образом:

  // Create the polyline and add the symbol to it via the 'icons' property.
  var line = new google.maps.Polyline({
    path: [{
      lat: 51.4700,
      lng: 0.4543
    }, {
      lat: 50.1109,
      lng: 8.6821
    }, {
        lat: 55.9533,
      lng: 3    
    }, {
      lat: 51.4700,
      lng: 0.4543
    },
    ],
    strokeColor: '#FF0000',
    strokeOpacity: 1.0,
    strokeWeight: 0, // change this value to show / hide the line
    icons: [{
      icon: lineSymbol,
      offset: '100%'
    }],
    map: map
  });

  animateCircle(line);
}

Наконец, нам нужно добавить метод для анимации символа в строке:

function animateCircle(line) {
  var count = 0;
  window.setInterval(function() {
    count = (count + 1) % 200; // change this to 1000 to only show the line once
    var icons = line.get('icons');
    icons[0].offset = (count / 2) + '%';
    line.set('icons', icons);
  }, 50); // change this value to change the speed
}

JSFIDDLE: https://jsfiddle.net/tu4s6302/3/

Другие вопросы по тегам