我正在 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 ?
我正在 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 ?
您需要知道地图的投影。有数百种不同的地图投影,其中许多可以具有可以具有任何含义的重要常量。
所以,首先,你需要知道,你使用什么地图?
之后,找到这个投影的公式并使用它们。例如,对于 UTM 投影,公式在这里。但是对于另一个投影,公式和整个系统将完全不同。
下一步,您必须自己想象抽象地图将如何显示在您的屏幕上。
对我来说,地理和编程方面的专业人士,对于一些完全已知且并不罕见的地图系统,整个任务至少需要 2 天时间。调试总是有严重的问题,要准确定位。并且公式总是存在问题 - 你会发现几个变体,并且需要找到正确的变体。
但是,如果程序员已经在积极使用地图,您可能会发现不是公式,而是代码片段。祝你好运!
该地图很可能使用 Mercantor 投影。问题是地球是一个球体,但地图上只有二维。您需要地图 4 个角的坐标和地图尺寸。y-map 值不会改变,但对于 x-map 值,您需要 Mercantor 投影。然后它变成一个线性变换,地图的宽度或高度可能与输入略有不同:将纬度/经度转换为像素坐标?.