Можно ли настроить Карты Google на медленное постоянное панорамирование? Как глобальная революция?

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

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

Спасибо


person Bill Bonar    schedule 26.07.2011    source источник


Ответы (2)


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

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

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

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

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

person mu is too short    schedule 26.07.2011

Принятый ответ в порядке, но немного устарел. Вместо 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()
})
person sne11ius    schedule 05.02.2017