2013-08-30 240 views
2

我正在用Java編寫一個地理遊戲,我想獲得關於國家邊界位置的一些數據,但是我可以找到的所有數據都是shapefile,我無法獲得緯度/經度數據,否則我只能找到每個國家的單個座標。國家邊界座標數據

我在哪裏可以找到

  • 的方式來提取經度/緯度數據轉換成有用的數據在Java或在一個文本文件?
  • 一個可以在java程序中使用的國家邊界上的免費數據的網站?

編輯:

它並不需要是準確的;除了俄羅斯,中國,美國和巴西之外,幾乎任何東西都可能就足夠了。羣島也不重要。我只想知道能夠比較準確地計算出兩國之間的最短距離。

回答

5

從這裏下載廣義國家邊界:http://www.baruch.cuny.edu/geoportal/data/esri/esri_intl.htm。這些可能比你想要的要詳細得多(加拿大的頂點數最多爲3316),但是我可以在網上找到的唯一免費的粗糙邊界數據集。

從shape文件爲文本獲取座標,去MyGeodata Converter

  1. 運行矢量變頻器
  2. 上傳您剛剛下載的zip文件。
  3. 檢查可用的操作
  4. 導出到GeoJSON的
  5. 下載Zip文件形式MyGeodata轉換
  6. 將文件解壓縮。

現在,您在GeoJSON format中有界限,可以使用GeoJSON解析器或更簡單的文本解析器來獲取座標數據。

如果這樣做太多了,您還可以使用各種Java shapefile框架之一來解析shapefile。有些選項請參閱Does anyone know of a library in Java that can parse ESRI Shapefiles?

+0

+1感謝MyGeodata轉換器鏈接。我稍後會研究它,並接受它是否有效。 –

+0

您可以更新鏈接,它不會再指向該資源。 – CMCDragonkai

0

下載osm文件並導入到postgresql + postgis(通過osm2pgsql工具將執行)。 如果您需要其他數據庫遷移的PostgreSQL到您所需的數據庫

http://planet.openstreetmap.org/

+0

這是一個59GB的XML文件。有關如何從中提取國家邊界的說明會有所幫助。 – fishinear

0

的MyGeodata轉換器只拋出此刻一個500錯誤,所以我必須看得更遠,終於跨越KML文件大致描述輪廓絆倒每個國家。我在this related question上發佈了鏈接,所以有人可能想看看那裏。