我有一套經緯度座標,這些座標將在我正在處理的GL程序中呈現。我有諸如每緯度和經度的單位數量等信息(我有十進制度數的座標,例如27.1234) - 例如,每經度15個單位,每個緯度10個單位。不過,我在渲染時遇到了問題。將經度和緯度轉換爲世界座標的算法(OpenGL)
這個計算給了我可以用於渲染的位置,但它並不完美。我最初只使用座標進行測試,例如S026.33.01.806 E148.46.27.009,當我切換到諸如N039.52.19.030 W075.14.28.107之類的座標時,渲染結束了顛倒和水平翻轉。這可能是OpenGL的基本缺乏理解,以及它如何解釋座標,或者我正在以錯誤的方式處理這個問題。我使用Python和PyOpenGL,但我認爲這種算法是可以在沒有特定語言要求的情況下完成的。
編輯:我已經上傳了代碼,似乎是最相關的http://slexy.org/view/s21LKiD9tj。
如果您發佈代碼,發現代碼中的錯誤會更容易。 – meriton
我可以看到各種問題。首先,儘管1度緯度對於第一(球形)近似而言是相同的距離,而不管地球上的位置如何,但是1度緯度具有可變尺寸,在赤道處最大並且在極處小極。其次,我不確定您所指的世界座標是一個OpenGL項目還是您對如何解釋該位置的描述。如果您正在查看生成3D笛卡爾座標,我可以看到各種顯示方式可以顛倒和翻轉。 S026.33.01.806 W075.14.28.107會發生什麼? –
@Jonathan Leffler:座標是一個小區域,每個經度和緯度的單位由數據源提供。在世界座標系中,我的意思是在GL世界中(我來自DirectX開發背景,以防萬一)。「世界座標」在這種情況下是指零點z有效的三維笛卡爾座標。這個軟件有點不準確。至於你提供的例子:渲染的項目是水平翻轉的。 –