将像素位置转换为纬度/经度&反之亦然

Convert pixel location to latitude/longitude & vise versa

本文关键字:经度 反之亦然 纬度 像素 位置 转换      更新时间:2023-09-26

我需要将纬度经度值转换为像素位置,以及做相反的事情。我已经找到了许多解决方案,从后期/lng->像素,但找不到任何相反的。

注意事项:

  • 地图是一个固定的大小,没有缩放,没有贴图。
  • 我不需要任何超级精确的东西,这并不重要。
  • 最好是墨卡托投影,但不是必需的。我实际上并没有显示结果。(任意2D投影)
  • 我不能依赖任何基于web的API,即:没有谷歌地图

任何编程语言的解决方案都可以,只要它不依赖于任何平台特定的api。

这是一个例子,从lat/lng->pixel:

var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));
var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));

使用一些代数运算,我得到:

var lat=(y/(this.MAP_HEIGHT/180)-90)/-1
var lng = x/(this.MAP_WIDTH/360)-180

我对这道数学题不是很有信心,因为它是我心算出来的,但这些应该是可行的,只是要确保先测试一下。