Я почти уверен, что можно хотя бы противодействовать импульсу. Кто-нибудь, пожалуйста, поправьте меня, если я ошибаюсь! Для простоты, например, предположим, что ваш контейнер карты имеет width
из 100vw
и height
из 100vh
. Вы просто вызываете getCenter()
в функции, вызываемой событием mouseup
, а затем используйте эти координаты сразу setCenter()
?
function initMap(){
...
var win = window;
google.maps.event.addDomListener(win, 'mouseup', setCoords);
function setCoords(){
var x = myMap.getCenter();
var lat = x.lat();
var lng = x.lng();
myMap.addListener('center_changed', function(lat, lng){
myMap.setCenter(new google.maps.LatLng(lat, lng));
};
};
. На самом деле код работает, но кикер что он работает только один раз до тех пор, пока браузер не станет, по-видимому, перегружен и не выдает ошибку. Uncaught RangeError: превышен максимальный размер стека вызовов.
Не уверен, что делать сейчас.
Подробнее об этом здесь .