Сохранение маркера в центре даже во время перемещения карты - PullRequest
0 голосов
/ 27 января 2019

Мне нужно постоянно держать маркер по центру, даже при перетаскивании и панорамировании карты, и обновлять его LngLat в соответствии с движением карты.

Хотя большая часть работает, но я просто не могувыяснить, как сохранить маркер по центру во время перетаскивания / панорамирования карты.

Вот что у меня есть: https://jsfiddle.net/iaezzy/yLf4wgzd/1/

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v9',
    center: [0, 0],
    zoom: 2
});
var marker = new mapboxgl.Marker()
    .setLngLat([0, 0])
    .addTo(map);

map.on('movestart', function (e) {
    console.log(`Current Map Center: ${map.getCenter()}`);
    marker.setLngLat(map.getCenter());
});
map.on('moveend', function (e) {
    console.log(`Current Map Center: ${map.getCenter()}`);
    marker.setLngLat(map.getCenter());
});

Один способ, которым я могунам нужно опрашивать map.isMoving каждые несколько миллисекунд и обновлять местоположение маркеров, но это не кажется оптимальным решением.

1 Ответ

0 голосов
/ 27 января 2019

Вы можете использовать событие move карты, чтобы обновить положение маркера во время движения карты. Вот ваш пример обновлен.

...