2010-05-13 78 views
0

我有一個Java小程序,它允許用戶從本地系統導入jpeg和世界文件。用戶可以在導入的圖像上「點擊」繪製線條。每行的每個端點都包含一組X/Y和Lat/Long值。 XY是標準的java座標空間,小程序使用世界文件的仿射變換計算來確定畫布上每個點的緯度/經度。從緯度/經度轉換爲笛卡爾座標與世界文件和地圖圖像

我有一個要求,允許用戶在文本字段中鍵入距離,並使用箭頭鍵從屏幕上的單個選定點在特定方向(上,下,左,右)繪製一條線。我知道如何確定給定源經緯度,距離和方位的點的經緯度。

因此,用戶在文本字段中鍵入「100」並按下右箭頭鍵,應該從當前選定的點向右100英尺繪製一條線。

我的問題是我不知道如何將距離(以英尺爲單位)轉換爲以像素爲單位的距離。這會告訴我在哪裏繪製點。

+2

既然你知道LAT /長目標的,這聽起來像你需要應用仿射變換的逆來將該地理點轉換爲像素空間中的點。是對的嗎? – tcarobruce 2010-05-14 17:24:22

回答

0

tcarobruce, 你是對的。逆變換算法就是我所需要的。由於我使用java,我能夠用具有逆變換函數的java.awt.AffineTransform對象替換我的「自制」變換算法。

這似乎解決了我的問題。

謝謝。

0

我想你確定你的用戶總是上傳經緯度爲wgs84投影的光柵圖像?因爲在這種情況下,你可以設置一個固定的座標轉換。

如果你考慮過數字化從其他與其他投影源的圖像,你可能想看看開源geotools庫:http://www.geotools.org/

+0

是的,這是一個企業環境,我們有一個特定的過程,供用戶上傳世界文件和匹配的jpg文件。 感謝您的鏈接,我已經看到了API,儘管它看起來可以提供幫助,但我正在處理一些可能不完全兼容的遺留庫,我希望避免大規模重新設計。 – 2010-05-19 15:06:19

相關問題