我有一些城市的地理坐标(纬度和经度),希望能够获取其x、y坐标以便绘制地图。地图是标准的,就像http://www.wordtravels.com/images/map/Spain/Fuerteventura_map.jpg这个例子一样。
我尝试了几个公式,但似乎都不起作用 :(。最好使用简单的javascript代码或ruby。
我尝试了几个公式,但似乎都不起作用 :(。最好使用简单的javascript代码或ruby。
z=sin(lat)
x=cos(lat)*sin(long)
y=cos(lat)*cos(long)
正向z指向北极。 正向y指向0,0,正向x指向纬度0经度90(东),正向纬度/经度是北和东。 当然,您必须先转换为弧度。
所有这些都假定地球是一个球体,虽然不完全正确,但除非您正在发射远程迫击炮弹,否则足够接近。
无论如何,一旦您拥有了XYZ,那么您将需要旋转和缩放地图。 要绕Z轴旋转,只需在投影到三维之前减去基本经度即可。 这样可以使您的地图以零经度为中心进行最简单的数学计算。
完成此操作后,您只需要将地球仪向前旋转,直到您的原始地图面对前方。 使用y-z轴的2D旋转来执行此操作。 使用http://en.wikipedia.org/wiki/Coordinate_rotations_and_reflections来解决这部分问题。
最后,您的x,z坐标将与地图的x,y坐标相当匹配,适当的比例/平移如前所述。