Можно ли настроить Google Maps на медленное постоянное панорамирование? Как глобус революции? - PullRequest
3 голосов
/ 26 июля 2011

Как раз то, что написано в названии. Я ищу решение, но я не нашел ничего, что могло бы привести меня к правильной документации или статьям.

Если у вас есть какие-либо идеи или вы можете указать мне на возможное решение, с которым я могу работать, это будет с благодарностью.

Спасибо

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Вы можете сделать это самостоятельно следующим образом:

  • Используйте setInterval, чтобы настроить функцию для периодического запуска.
  • Функция будет вызыватьpanBy на объекте карты Google, чтобы «немного повернуть» его.

Это должно дать вам простую анимацию, которая делает то, что вы хотите.Вы хотели бы отрегулировать интервал времени, который вы даете setInterval, чтобы получить что-то, что кажется, конечно, плавным.У вас должно быть что-то вроде этого:

// Create your map and leave it in the "map" variable.
setInterval(function() {
    map.panBy(x, 0);
}, n);

Выбор подходящих значений x и n зависит от вас.

0 голосов
/ 05 февраля 2017

Принятый ответ в порядке, но немного устарел. Вместо window.setInterval вы должны использовать window.requestAnimationFrame. Это даст вам более плавную анимацию.

Простой пример (не от меня) можно найти здесь , но суть его выглядит примерно так:

var map = new google.maps.Map(document.getElementById('my-map'), mapOptions)
function animate () {
  map.panBy(2.5 / 2, 1.3 / 2)
  window.requestAnimationFrame(function () {
    animate()
  })
}
// eslint-disable-next-line
google.maps.event.addListenerOnce(map, "tilesLoaded", function () {
  window.requestAnimationFrame(function () {
    animate()
  })
})
window.requestAnimationFrame(function () {
  animate()
})
...