在Google地图上正确绘制超过90度纬度的点

时间:2012-12-08 20:17:41

标签: google-maps google-maps-api-3 latitude-longitude

我正在使用一个模拟器,在Google地图上绘制飞机的飞行路径。

模拟器不知道纬度仅定义在-90和+90度之间,经度介于-180和+180度之间。结果,飞行路径可包括超出地图边界的点。超出经度不是问题,因为它仍然正确绘制(经度x和x + 360的点是相同的),但纬度是一个问题。

有没有办法告诉谷歌地图保持正确边界之间的点并正确绘制它们?

否则,您是否有任何想法可以找到这样做的功能?

2 个答案:

答案 0 :(得分:1)

如果您的模拟器不知道纬度的最大值是90度,则它会被破坏并需要修复。 Google地图可以正确使用纬度和经度的有效/可能值。

答案 1 :(得分:1)

经度,纬度和海拔是飞行模拟器的不良坐标系,因为该映射呈现奇点,即地球上有无限接近的点具有非常不同的坐标。例如,在接近其中一个极点的情况下,与飞机速度相比,经度变化速度可以变得任意大。当准确地站在杆子上时,经度甚至没有意义。

更好的解决方案是为模拟器使用XYZ坐标系,并仅转换为经度/纬度和高程进行绘图。如果你可以根据你的用例将地球近似为一个球体,那么这种变换的计算是微不足道的......否则,根据你想要它的精确程度,事情会变得复杂得多。

那说它仍然可以通过将其延伸到极点上而略微超出-90 ... 90范围的点给出“a”含义......

if latitude < -90:
    latitude = -180 - latitude
    longitude = longitude + 180
if latitude > 90:
    latitude = 180 - latitude
    longitude = longitude + 180

但使用此坐标系进行导航是一个非常糟糕的主意(空间中的同一点可以有多个坐标三元组)。