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

Tyl*_*eto 5 javascript java geolocation actionscript-3 latitude-longitude

我需要将纬度经度值转换为像素位置,并执行相反的操作.我发现很多解决方案来自lat/lng-> pixel,但反过来找不到任何东西.

几个笔记:

  • 地图是固定大小,没有缩放,没有拼贴.
  • 我不需要任何超级准确的东西,它并不重要.
  • 优选墨卡托投影,但不是必需的.我实际上并没有显示结果.(任何2D投影)
  • 我不能依赖任何基于网络的API,即:没有谷歌地图

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

这是从lat/lng->像素转到的示例:

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

小智 5

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

使用一些代数,我出来了:

var lat=(y/(this.MAP_HEIGHT/180)-90)/-1
var lng = x/(this.MAP_WIDTH/360)-180
Run Code Online (Sandbox Code Playgroud)

因为它是在我的头脑中完成的,所以对数学不完全自信,但那些应该有用,只要确保先测试它们.

  • 虽然这些数字是多少?180,360等?Map_height还是以度或像素为单位? (2认同)