【发布时间】:2026-01-17 14:10:01
【问题描述】:
我有 Mapbox 地图上某个位置的纬度和经度坐标。地图设置为 15 级缩放,方位角为 30 度。当地图显示在屏幕上时,我需要水平移动 +500px 和垂直移动 +300px。如何计算出目的地在纬度和经度坐标中的位置?
我需要在 ruby 脚本中进行这个计算(很多人都喜欢它)。
虽然我找到了一些描述如何实现与我想要的相反的信息,但我很难理解它是如何工作的,因此我无法反转计算。
有人可以帮我吗?
【问题讨论】:
我有 Mapbox 地图上某个位置的纬度和经度坐标。地图设置为 15 级缩放,方位角为 30 度。当地图显示在屏幕上时,我需要水平移动 +500px 和垂直移动 +300px。如何计算出目的地在纬度和经度坐标中的位置?
我需要在 ruby 脚本中进行这个计算(很多人都喜欢它)。
虽然我找到了一些描述如何实现与我想要的相反的信息,但我很难理解它是如何工作的,因此我无法反转计算。
有人可以帮我吗?
【问题讨论】:
有一个名为project 和unproject 的方法。
project 将LngLat 转换为像素,unproject 将像素转换为LngLat。
你可以使用类似的东西:
const currentCenterPixel = map.project(map.getCenter());
currentCenterPixel.x += 500;
currentCenterPixel.y += 300;
map.once("idle", () => {
map.panTo(map.unproject(currentCenterPixel));
});
【讨论】: