Я бы назначил слушателя для события moveend
. В этом слушателе я бы исследовал границы карты, используя метод getBounds()
, и выяснил, являются ли границы приемлемыми или нет, где должен быть новый центр карты. Затем я бы вызвал метод panTo()
, чтобы переместить карту туда, где границы будут приемлемыми.
Это позволяет прокрутке произойти, а затем исправляет ее. Если вы хотите, чтобы прокрутка не зашла слишком далеко, попробуйте прослушать другие события перемещения до moveend
.
Это для версии 2 API GMaps, которая устарела. Используйте аналогичные методы в версии 3 API, особенно в классе Map .