2013-08-30 105 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上发布了链接,所以有人可能想看看那里。