Сделать маркер статичным и выбор адреса при 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);

→ Ссылка