Подтвердить что ты не робот

Как динамически изменять центр карт Google без стирания маркеров?

Первоначально моя карта будет указывать на текущее местоположение пользователя. Я даю вариант, когда он может выбрать город из автозаполнения, как только он выберет новое местоположение из автозаполнения, я получу новую (lat, lng) координаты, для которой я хотел бы сфокусировать свою карту.

Из моих знаний API Карт я могу думать об этом как об изменении центра (однако, центр установлен только при загрузке карты). Я хочу, чтобы эта ориентация была направлена ​​на выбранное пользователем местоположение на картах Google. Кто-нибудь может мне помочь. Заранее спасибо. Использование Google Maps js api v3.

4b9b3361

Ответ 1

Вы можете просто переместить карту с помощью map.setCenter(LatLng). Этот метод не будет использовать другие маркеры и не удалит существующие маркеры. Вы также можете переместить карту с помощью функции panTo(LatLng). Оба метода также доступны после инициализации карты.

Вот документация для этих методов.

Ответ 2

jOnes прав, вам нужно использовать setCenter()

function initialize()
{
    var mapDiv = document.getElementById('MapDiv');
    var map;
    var address = "Vilnius, Lithuania";
    var geocoder = new google.maps.Geocoder();
    // Get LatLng information by name
    geocoder.geocode({
        "address": address
        }, function(results, status){
                map = new google.maps.Map(mapDiv, {
                // Center map (but check status of geocoder)
                center: results[0].geometry.location,
                zoom: 8,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
            })
        });
}