簡體   English   中英

使用Java和任何外部庫,如何將緯度/經度點繪制到地球的圖形表示中?

[英]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

雖然我還沒有使用它,但SwingLabs SwingX-WS項目有一個“豐富的地圖查看器組件”。 有一個關於Java.net頁面上的map組件入門的教程。

處理地理空間數據可能會非常棘手。 采取什么方法取決於顯示數據時您需要多准確。 GIS for Web Developers是一本很好的書,它涵蓋了地理空間數據的問題以及如何將數據源從數據源傳輸到顯示器上。 它適用於基於Web的顯示,但概念是相同的。

如果您不需要高度准確,一個簡單的方法是找到未投影的基本地圖。 使用基本地圖,可以使用簡單的笛卡爾坐標輕松顯示緯度/經度。

如果你確實需要一個准確的顯示,那么真的沒有辦法避免相當復雜的庫。 將具有不同基准和投影的地理空間數據轉換為可以向用戶顯示的內容涉及大量數學。

你應該看看OpenMap

幾年來,我們一直使用OpenMap在桌面應用程序中顯示GPS軌跡。 為跟蹤點,歷史記錄,注釋和您自己的數據源添加自己的圖層非常容易。 如果您不希望它擁有它們,則不需要任何外部連接。

我很快就看了GeoTools,但似乎開始,至少一兩年前比我們已經完成的OpenMap更復雜。 我們最近一直在探索WorldWind ,但它絕對是我們所需要的。 與需要相當不錯的視頻卡的WorldWind相比,OpenMap幾乎不需要馬力。

我曾經在一段時間內使用OpenMap做一個小應用程序 - 這是一個黑客,但顯示了如何做到這一點。 該應用程序使用NOAA的數據顯示了不同年份的颶風軌跡。 你可以在這里下載:

http://github.com/DonBranson/SnarfNOAA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM