javascript - MapBox GL JS 标记偏移

标签 javascript mapbox mapbox-gl mapbox-gl-js

我正在使用 MapBox GL JS使用自定义标记创建 map :

var marker = new mapboxgl.Marker(container)
    .setLngLat([
        datacenters[country][city].coordinates.lng,
        datacenters[country][city].coordinates.lat
    ])
    .addTo(map);

但是,我似乎对标记有某种偏移问题。问题是:当缩小一点时,标记的底部并没有真正指向确切的位置:

Marker when zoomed out a bit

当我进一步放大时,它到达了目的地并且指向了准确的位置。

Marker when zoomed in

我真的很喜欢 MapBox GL,但是这个特殊的问题一直困扰着我,我很想知道如何解决它。当这个问题得到解决后,我的实现比我使用的原始 map 软件要好得多。

最佳答案

从 Mapbox GL JS 0.22.0 开始,您可以为标记设置偏移选项。 https://www.mapbox.com/mapbox-gl-js/api/#Marker

例如,要偏移标记,使其 anchor 位于中间底部(对于您的图钉标记),您可以使用:

var marker = new mapboxgl.Marker(container, {
        offset: [-width / 2, -height]
    })
    .setLngLat([
        datacenters[country][city].coordinates.lng,
        datacenters[country][city].coordinates.lat
    ])
    .addTo(map);

关于javascript - MapBox GL JS 标记偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768270/

相关文章:

javascript - 选项卡打开后,倒计时开始

javascript - 我可以禁用 Windows 8 共享栏上的屏幕截图选项吗?

mapbox - 如何在 MapboxGL 中使用可拖动的自定义图像制作标记?

css - 为 MapboxGl 标记使用自定义字体和重新着色

ios - 如何在 MapBox SDK for IOS 上检测长按手势?

javascript - 如何将相机始终设置在用户地理位置的中心

javascript - 如何使用 VS Code (typescript) 中的一个命令删除事件文件中所有未使用的导入?

javascript - 传递给 jQuery.append() 的字符串的大小是否有限制

java - 圆角mapbox mapView

mapbox - 如何获取过滤后的Mapbox图层的结果?