Mapbox GL-JS:如何更新标记位置?

Mapbox GL-JS: How do I update a marker position?

我使用以下代码在我的地图上创建了一个标记实例,但我不知道如何更新位置。我在这里获得了有关 SO 的帮助,并试图查看 Mapbox 文档但无济于事。这是我当前的代码:

var el = document.createElement('div');
el.className = 'marker';
el.id = 'marker1';
el.style.backgroundImage ='url(images/marker.png)';
el.style.width = '10px';
el.style.height = '10px';

new mapboxgl.Marker(el)
.setLngLat([-99, 30])
.addTo(map);

这是我的函数,可以更新地图上标记的位置:

function setMarker()
{
    marker1.setLngLat([-93.50, 30]);
}

然而,当调用该函数时,我只在控制台中收到以下错误:

marker1.setLngLat is not a function

我做错了什么?

您没有定义 marker1 变量。你必须这样做。确保您定义的范围 marker1 变量与方法相同

let marker1 = new mapboxgl.Marker(el)
.setLngLat([-99, 30])
.addTo(map);

那么你的方法setMarker就可以了