2012-09-13 86 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?