![](/img/trans.png)
[英]How can I quickly estimate the distance between two (latitude, longitude) points?
[英]Using Java and any external libraries, how can I draw latitude/longitude points onto a graphical representation of the Earth?
我目前正在使用Java Map Projection Library (我能夠從作者那里獲取用於Applet的代碼並將其修改為在桌面應用程序中使用 - 不確定他是否與他的網站上的鏈接相關)來繪制應用程序中的地球地圖。 但是,我想更進一步。 我有一組我想在這張地圖上繪制的緯度/經度點 - 我只需要在每個點畫一個圓圈,也許需要在地圖上畫一些連接圓圈(點)的線條。 但是,由於用戶使用內置的平移和縮放功能,需要在正確的位置重繪點。 我能夠實現的最好的是在縮放時保持點數,即使這樣,在放大時點也會變大。
我完全願意切換庫,但是我真的沒有找到一個可以處理世界地圖的庫,特別是在Swing組件上(它不需要那么准確,只是在某種程度上展示各種大陸)正確地)並且還在該地圖的頂部繪制附加點並使它們“粘”到各種緯度/經度坐標。
我看過谷歌地球和NASA WorldWind,但它們對我的目的來說非常沉重(我不需要任何詳細或准確的東西)並且它似乎不容易離線使用並將世界圖像視圖集成到現有的申請。
建議還是想法?
您可以查看www.osgeo.org Java堆棧的其他組件。 其中一個是geotools: http ://geotools.codehaus.org/
他們還在開發創建GUI: http : //geotools.codehaus.org/GUI+Architecture
處理地理空間數據可能會非常棘手。 采取什么方法取決於顯示數據時您需要多准確。 GIS for Web Developers是一本很好的書,它涵蓋了地理空間數據的問題以及如何將數據源從數據源傳輸到顯示器上。 它適用於基於Web的顯示,但概念是相同的。
如果您不需要高度准確,一個簡單的方法是找到未投影的基本地圖。 使用基本地圖,可以使用簡單的笛卡爾坐標輕松顯示緯度/經度。
如果你確實需要一個准確的顯示,那么真的沒有辦法避免相當復雜的庫。 將具有不同基准和投影的地理空間數據轉換為可以向用戶顯示的內容涉及大量數學。
我曾經在一段時間內使用OpenMap做一個小應用程序 - 這是一個黑客,但顯示了如何做到這一點。 該應用程序使用NOAA的數據顯示了不同年份的颶風軌跡。 你可以在這里下載:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.