【问题标题】:Converting pixels to coordinates on a Mapbox map将像素转换为 Mapbox 地图上的坐标
【发布时间】:2026-01-17 14:10:01
【问题描述】:

我有 Mapbox 地图上某个位置的纬度和经度坐标。地图设置为 15 级缩放,方位角为 30 度。当地图显示在屏幕上时,我需要水平移动 +500px 和垂直移动 +300px。如何计算出目的地在纬度和经度坐标中的位置?

我需要在 ruby​​ 脚本中进行这个计算(很多人都喜欢它)。

虽然我找到了一些描述如何实现与我想要的相反的信息,但我很难理解它是如何工作的,因此我无法反转计算。

有人可以帮我吗?

【问题讨论】:

    标签: maps gis mapbox


    【解决方案1】:

    有一个名为projectunproject 的方法。

    projectLngLat 转换为像素,unproject 将像素转换为LngLat

    你可以使用类似的东西:

    const currentCenterPixel = map.project(map.getCenter());
    currentCenterPixel.x += 500;
    currentCenterPixel.y += 300;
    map.once("idle", () => {
        map.panTo(map.unproject(currentCenterPixel));
    });
    

    https://jsfiddle.net/cs09g/q3x1ohun/8/

    【讨论】: