即使在地图移动期间也保持标记居中

Keeping a marker centered even during map move

我需要始终保持标记居中,即使在拖动和平移地图的过程中也是如此,并根据地图移动更新其 LngLat。

虽然大部分都有效,但我只是想不出如何让标记在地图drag/pan期间居中drag/pan。

这是我目前的情况: 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 并更新标记位置,但这似乎不是最佳解决方案。

可以使用move event of the map to update the position of the marker while the map is moving. Here is your example更新了。