2012-09-13 99 views
2

我正在iPhone应用上实施自定义地图(尺寸为map_width和map_height的图像),并尝试显示当前用户在此地图上的位置(current_long和current_lat )从GPS坐标计算PNG地图上的X和Y位置

我有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

您需要知道地图的投影。有数百个不同的地图投影,其中许多可以有重要的常数,可以有任何意义。

所以,首先,您需要知道,您使用的是哪张地图?

之后,找到此投影的公式并使用它们。例如,对于UTM投影公式就在这里。但对于另一个预测公式和整个系统将是完全不同的。

下一步,您将不得不想象您的屏幕上将如何显示抽象地图。

对于我来说,在地理和编程方面的专业人士来说,整个任务对于一些完全已知而不是罕见的地图系统来说至少需要2天时间。在调试过程中总会遇到严重的问题,准确设置点。公式总是有问题 - 你会发现几个变体,并且需要找到正确的。

但是,如果地图已被程序员积极使用,则可以找到不是公式,而是代码段。祝你好运!

+0

:2天?你可以买5美元吗? – Bytemain

+0

@Phpdna也许吧。我们不是在谈论购买,而是在于如何去做。我做了好几次,我记得这些地图上的问题不符合写在它们上面的标准。 – Gangnus

0

最有可能的是,地图使用了一个mercantor投影。问题在于地球是一个球体,但在地图上只有2个维度。你需要地图四角的坐标和地图尺寸。 y-map值不会改变,但对于x-map值,您需要使用mercantor投影。然后它变成线性变换,并且地图的宽度或高度可能与输入略有不同:Convert lat/lon to pixel coordinate?