Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Как центрировать карту на маркер после смены размера карты?

#google_maps_api #javascript


  



No Title 



  
  
Хочу чтобы при нажатие на маркер появлялась информация о магазине (справа) Дело в том, что после того, как изменяется размер Table, маркер остается на том же месте, где раньше был центр. Стоит мне изменить размер окна и, вуаля, маркер встает по центру. Как сделать чтобы он сразу встал туда? Извиняюсь, код был не очень корректен (исправил) myLatlng = new google.maps.LatLng(marker.getPosition()); Эта строчка вроде должна менять центр карты на маркер google.maps.event.addListener(map, 'zoom_changed', function(){ map.setCenter( marker.getPosition() ); }); Работает точно так же, т.е. карта центрируется на маркер но это не совсем центр (это тот старый центр), карта уменьшилась в размерах (с права на 20%) то и центр должен сдвинуться (на 10% от центра в левую сторону) Нет, парни все дело не в этом. т.е. это то же самое плавно, не плавно, без разницы, центр (маркер) остаются на старом месте после изменения размера таблицы, если я уменьшу таблицу до 40%, то он вообще исчезнет из поля видимости.


Ответы

Ответ 1



У карты есть событие zoom_changed. На него можно повесить обработчик, которым будет устанавливаться центральная точка. google.maps.event.addListener(map, 'zoom_changed', function(){ map.setCenter( marker.getPosition() ); });

Ответ 2



Есть более прекрасное решение: методом yourMap.panTo(new google.maps.LatLng(userLat, userLong)); Тут прокрутка произойдет плавно, а не так что сразу в центр ляснет ;)

Комментариев нет:

Отправить комментарий