【问题标题】:Country border coordinate data国家边界坐标数据
【发布时间】:2013-08-30 02:22:00
【问题描述】:

我正在用 Java 编写一个地理游戏,我想要一些关于国家边界位置的数据,但我只能找到 shapefile,我无法获取纬度/经度数据其中,否则我只能为每个国家/地区找到一个坐标。

我在哪里可以找到

  • 一种将经度/纬度数据提取到 Java 或文本文件中的可用数据的方法?
  • 一个包含可用于 Java 程序的免费国家边界数据的网站?

编辑:

不需要很精确;对于除了俄罗斯、中国、美国和巴西之外的几乎任何地方,10 个坐标可能就足够了。岛屿也无所谓。我只是想知道能不能比较准确地计算出两国之间的最短距离。

【问题讨论】:

    标签: java shapefile geography gis


    【解决方案1】:

    从此处下载广义国家边界: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 format 中的边界,并且可以使用 GeoJSON 解析器或更简单的文本解析器来获取坐标数据。

    如果工作量太大,您还可以使用现有的各种 Java shapefile 框架之一来解析 shapefile。请参阅Does anyone know of a library in Java that can parse ESRI Shapefiles? 了解一些选项。

    【讨论】:

    • +1 感谢您提供 MyGeodata 转换器链接。稍后我会研究它,如果它有效,我会接受。
    • 你能更新链接吗,它似乎不再指向资源了。
    【解决方案2】:

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

    http://planet.openstreetmap.org/

    【讨论】:

    • 这是一个 59GB 的 XML 文件。有关如何从中提取国家边界的说明会很有帮助。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 2019-08-13
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多