Я успешно нарисовал маркеры, используя API карт Google.
var latlng = {lat: 34.7651458,lng: 121.453208};
map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 18
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Marker!'
});
marker.setMap(map);
Но если пользователь перемещается по карте, centre:latlng
меняется. Если я хочу нарисовать новый маркер для этого нового centre
, как мне зафиксировать это изменение в centre
, чтобы получить данные из API для рисования нового маркера. Спасибо за любое предложение.
Вы можете добавить прослушиватель событий dragend
к map
(или вы также можете использовать center_changed
). Получите центр карты с помощью map.getCenter()
и создайте маркер.
map.addListener('dragend', function() {
var c = map.getCenter(); //Get new center of the map
var marker = new google.maps.Marker({ //Create a new marker and use the map's center as the location.
position: c,
map: map,
title: 'Marker!'
});
});
Да, любопытно, разве перетаскивание не всегда меняет центр? если бы вы не могли тянуть по дуге окружности.
Да, есть отличия. Вы можете проверить Developers.google.com/maps/documentation/javascript/events для получения дополнительной информации. Однако изменение центра можно изменить без перетаскивания. Например, когда вы программно меняете местоположение карты :)
@Eddie: Последний вопрос. В моем случае центр будет меняться только тогда, когда пользователь пересекает карту (перетаскивает ее). И, когда это перетаскивание закончится, мне нужно захватить новый центр и нарисовать новые маркеры. dragend
кажется, лучше всего подходит для меня, любое мнение, сэр...
@Viney: Спасибо за перетаскивание дуги по окружности, сэр, нужно позаботиться об этом при выборе событий.
@ksalf Да, если это так dragend
подходит для вашего приложения :)
Спасибо за вашу помощь и эту прекрасную ссылку, сэр. Продолжаем с «драгендом» :)
Получил право проголосовать за ответ, проголосовал за ваш, сэр.
Большое спасибо за ответ, сэр. Теперь я мог поместить свою логику в эту функцию для получения данных из API. Есть ли разница между
centre_changed
иdragend
?