javascript - 通过 JavaScript 以编程方式更改 MapBox 标记的 OFFSET

标签 javascript mapbox mapbox-gl-js

this question之后我昨天问过...

我将 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(), ...) 然后删除旧标记)

关于javascript - 通过 JavaScript 以编程方式更改 MapBox 标记的 OFFSET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46072617/

相关文章:

javascript - 验证用户身份并同时将其添加到数据库

javascript - Meteor TypeError : braintree. 设置不是一个函数

javascript - 如何使用mapboxgl.js向 map 添加图 block 图层

ios - 自定义 MGLAnnotationView

mapbox - 将 3D 模型导入 Mapbox

javascript - 如何更改特定的 jQuery dataTables 单元格值

javascript - 如何循环遍历 Google 表格中的事件 ID 以检索附件 ID?

javascript - MapBox:为点分配图标

javascript - Mapbox gl js 样式更改后的持久层

javascript - 即使在 map 移动期间也保持标记居中