我正在iPhone应用程序上实现自定义地图(图片大小为map_width和map_height),我尝试在此地图上显示当前用户位置(current_long和current_lat)
我有2个带有已知GPS坐标的参考点(ref1_long,ref1_lat,ref2_long和ref2_lat)以及已知的X,Y位置(以像素为单位)(ref1_x,ref1_y,ref2_x和ref2_y)
我的问题是:如何根据这些信息计算current_x和current_y?
答案 0 :(得分:0)
您需要知道地图的投影。有数百种不同的地图投影,其中许多可以具有可以具有任何意义的重要常数。
首先,你需要知道,你使用的是什么地图?
之后,找到此投影的公式并使用它们。例如,对于UTM投影,公式就在这里。但对于另一个投影,公式和整个系统将完全不同。
下一步,你必须想象自己如何在屏幕上显示抽象地图。
对于我来说,对于我来说,在地理和编程方面,对于一些完全已知且不罕见的地图系统,整个任务最少需要2天。在调试中总是存在严重问题,以准确设置点。公式总是存在问题 - 你会发现几个变种,需要找到正确的变体。但是如果地图已被程序员积极使用,你可能找不到公式,而是代码片段。祝你好运!
答案 1 :(得分:0)
地图最有可能使用mercantor投影。问题是地球是一个球体,但地图上只有2个维度。您需要地图四个角的坐标和地图尺寸。 y-map值不会改变,但对于x-map值,您需要mercantor投影。然后它变成线性变换,地图的宽度或高度可能与输入略有不同:Convert lat/lon to pixel coordinate?。