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

时间:2019-01-26 21:54:10

标签: javascript mapbox-gl-js

即使在拖动和平移地图时,我也要始终保持标记居中,并根据地图移动来更新其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 :(得分:1)

您可以在地图移动时使用地图的move事件来更新标记的位置。 your example已更新。