2009-11-04 63 views
2

是否存在Java的任何開源或「免費」庫,我可以執行從一個空間系統到另一個空間系統的座標變換?座標變換

我發現Opengeo http://opengeo.org/,但它是一個巨大而全面的各種空間事物庫。

有沒有更小的存在?我需要從MGA56轉換爲WGS84。

+0

你需要什麼轉變(從要什麼有什麼)? – Seth 2009-11-04 23:55:47

回答

3

一個簡單的解決方案是PROJ.4,但它沒有Java綁定,所以使用它可能有點棘手。更完整(但可能比你想要的更大)解決方案將是GeoTools。但是快速搜索發現Java Map Projection Library,它似乎是PROJ.4的Java端口。我會試一試。

由於看起來您需要做一次數據平移,不僅需要投影,還需要有一些座標系數據庫。最容易掌握的就是EPSG數據庫--PROJ.4帶有一個EPSG映射文件,對於大多數用途來說這應該足夠好。

它看起來像MGA56是EPSG:28356,當然WGS84是EPSG:4326

+0

OP似乎已經在使用GeoTools:http://stackoverflow.com/questions/1676940/google-maps-spatial-reference-system – 2009-11-05 02:31:10

+0

PROJ.4看起來不錯。我使用ProjectionFactory.getNamedPROJ4CoordinateSystem()來獲取投影。但是沒有任何改變是可能的我讀了它說的文檔「座標系和大地基準轉換丟失」。 – JavaRocky 2009-11-05 03:21:05

+0

如果您使用的是GeoTools,請不要直接與PROJ4一起工作 - 對於EPSG字符串使用'CRSAuthorityFatory.createCoordinateReferenceSystem(epsgString)'' 「EPSG:28356」和「EPSG:4326」然後執行CRS.findMathTransform(sourceCRS,targetCRS,true)。您需要在您的類路徑中安裝GeoTools EPSG JAR之一 - 我會推薦'gt-epsg-hsql',這是最容易使用的。 – 2009-11-06 18:08:11

3

有一個完全用Java編寫的輕量級庫。

座標轉換套件(簡稱CTS)是一個開發用於使用衆所周知的大地測量算法和參數集進行座標轉換的庫。

CTS處理4257個座標參考系統(3910 EPSG)。

這個項目的源代碼位於:

https://github.com/irstv/CTS