Как динамически изменять центр карт Google без стирания маркеров?
Первоначально моя карта будет указывать на текущее местоположение пользователя. Я даю вариант, когда он может выбрать город из автозаполнения, как только он выберет новое местоположение из автозаполнения, я получу новую (lat, lng) координаты, для которой я хотел бы сфокусировать свою карту.
Из моих знаний API Карт я могу думать об этом как об изменении центра (однако, центр установлен только при загрузке карты). Я хочу, чтобы эта ориентация была направлена на выбранное пользователем местоположение на картах Google. Кто-нибудь может мне помочь. Заранее спасибо. Использование Google Maps js api v3.
Ответы
Ответ 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,
})
});
}