Сделать маркер статичным и выбор адреса при onDragEnd
map.on('move', () => {
marker.setLatLng(map.getCenter())
})
map.on('dragend', () => {
marker.setLatLng(marker.getLatLng())
})
Нужно сделать выбор адреса перетаскиваем карты. В 2 версии делал таким способом, как этого же поведения добиться в 3 версии. При перетаскивании карты (событие move) маркер центрируется относительно карты и при dragend получаю ширину и долготу маркера. Нужн
Ответы (1 шт):
Автор решения: YaCor'
→ Ссылка
Для получения координат центра карты нет необходимости добавлять там маркер, что в старой, что в новой версии API. В API 3.0 можете отслеживать onActionEnd карты и получать её центр. А для визуального удобства на центр карты можете наложить подходящее изображение метки любым доступным вам методом.
Если всё же делать с меткой, которую постоянно перетаскивать на центр, используйте метод update для этой метки
var coords = [37.64, 55.76]
const map = new YMap(document.getElementById('map-container'), {
location: {
center: coords,
zoom: 6
}
});
map.addChild(new YMapDefaultSchemeLayer())
.addChild(new YMapDefaultFeaturesLayer())
var marker = new YMapDefaultMarker({
coordinates: coords
});
map.addChild(marker)
const dragCallback = (object) => {
marker.update({
coordinates: object.location.center
});
};
const mapListener = new YMapListener({
onActionEnd: dragCallback
});
map.addChild(mapListener);