3

I'm writing a geography game in Java, and I'd like to have some data on the locations of the borders of countries, but all I can find is shapefiles, and I can't get latitude/longitude data out of them, or else I can only find a single coordinate for each country.

Where can I find

  • a way to extract the longitude/latitude data into usable data in Java or in a text file?
  • a web site with free data on country borders that can be used in a java program?

Edit:

It doesn't need to be exact; for pretty much anything except Russia, China the U.S., and Brazil, 10 coordinates is probably enough. Islands don't really matter either. I just want to know be able to calculate relatively accurately the shortest distance between two countries.

4

3 回答 3

6

从这里下载广义的国家边界: http ://www.baruch.cuny.edu/geoportal/data/esri/esri_intl.htm 。这些可能比您想要的更详细(加拿大在 3316 处拥有最多的顶点),但这是我可以在网上找到的唯一免费的粗略边界数据集。

要将 shapefile 中的坐标作为文本获取,请转到MyGeodata Converter

  1. 运行矢量转换器
  2. 上传刚刚下载的 zip 文件。
  3. 检查可用操作
  4. 导出到 GeoJSON
  5. 从 MyGeodata Converter 下载 Zip 文件
  6. 解压缩文件。

现在您有了GeoJSON 格式的边界,可以使用 GeoJSON 解析器或更简单的文本解析器来获取坐标数据。

如果工作量太大,您还可以使用各种 Java shapefile 框架之一解析 shapefile。请参阅是否有人知道可以解析 ESRI Shapefile 的 Java 库?一些选项。

于 2013-08-30T03:14:22.313 回答
0

下载osm文件并导入postgresql+postgis(通过osm2pgsql工具即可)。如果您需要另一个数据库,请将 postgresql 迁移到您想要的数据库

http://planet.openstreetmap.org/

于 2013-08-30T03:19:51.277 回答
0

MyGeodata 转换器目前只抛出 500 错误,所以我不得不进一步查看,最后偶然发现了大致描述每个国家/地区轮廓的 KML 文件。我发布了这个相关问题的链接,所以有人可能想看看那里。

于 2016-01-09T13:55:41.517 回答