通过 JavaScript 以编程方式更改 MapBox 标记的偏移量

Programmatically change OFFSET of MapBox Marker via JavaScript

我昨天问...

我正在将 MapBox 标记添加到数组中,如下所示:

var el = document.createElement('div' + index);
el.className = 'marker';
deviceMarkers.push(new mapboxgl.Marker(el, { offset: [-50 / 2, -50 / 2] }).setLngLat([device.lat, device.lon]).addTo(map));

在代码的其他地方,我通过以下方式提取标记:

var deviceMarker = deviceMarkers[index];

我现在需要能够在 javascript 中以编程方式更改 deviceMarker 的偏移量,以确保图像仍然居中div 随缩放调整大小。

可以做到吗?如果可以,怎么做?

当前 API 无法执行此操作。我建议您只使用新偏移量和现有元素创建一个新标记(即 new mapboxgl.Marker(oldMarker.getElement(), ...) 然后删除旧标记)