我需要多个国家/地区的州、省和地区的 geoJSON 格式路径。最容易获得的 geoJSON 数据是针对美国各州和国家级别的边界,而不是国内的区域。此 geoJSON 将用于使用 D3.js 创建地理可视化。
4 回答
与我在接受的答案中看到的步骤相比,此过程现在已简化(2014 年 7 月)。现在似乎更容易获得这些数据。起初,我在网上徘徊,希望我可以下载一堆 GeoJSON 格式的标准地图,但除了标准的美国/加拿大产品之外,什么都没有。截至目前,直接 GeoJSON 似乎没有很多可用的。相反,您采用较旧的、广泛使用的格式来生成 GeoJSON。这很容易,也是一条好路。我们将使用形状文件并将它们转换为 GeoJSON。
首先为您感兴趣的地理区域下载一个 shape 文件。shapefile 是一种数字矢量存储格式,用于存储几何位置和相关属性信息。(http://en.wikipedia.org/wiki/Shapefile)
这些来源有很多。这些是我发现有用的资源:
GADM - 按国家或世界的一个巨大文件下载数据。您下载的每个 zip 文件内部都有多个形状文件,从数字 0 开始并不断增加。数字越高,详细程度越高。像国家、州、县等 ( http://www.gadm.org/country )
另一个下载站点(http://www.naturalearthdata.com/downloads/)
下载由人口普查局驱动的美国州、县、分县数据 - http://census.ire.org/data/bulkdata.html
获得形状文件后,将其拖放到位于http://www.mapshaper.org的网页中。您可以在此处拖动滑块来更改矢量分辨率。我的经验是 10% 的分辨率对于 web 地图来说看起来仍然很棒,25% 接近完美。文件大小大大减小,所以我建议使用它。降低分辨率后,我的马萨诸塞州地图从 800kb 的 GeoJSON 数据变为 80kb。
单击 mapshaper 上的 GeoJSON 按钮,文件会自动为您导出。
可选 - 拥有形状文件后,您可以在Quantum GIS (QGIS) 等工具中免费对其进行编辑。
您还可以在此网站上手动绘制 GeoJSON 数据。http://geojson.io/#map=2/20.0/0.0
关于如何从 shapefile 生成 geoJSON 有一篇很好的文章
http://vallandingham.me/shapefile_to_geojson.html
以下步骤将带您从头到尾:
安装 Quantum GIS 框架http://www.qgis.org/e/qgis。
如果您使用的是 Mac OS X,则可以使用此版本http://www.kyngchaos.com/software
这将为您提供用于将 shapefile 转换为 geoJSON 的 ogr2ogr 实用程序从此处http://www.gadm.org/country下载您所在国家/地区的 shapefile并解压缩
对于加拿大,可能还有其他国家,带有后缀 0 的 shapefile 用于国家边界,而后缀 1 用于内部区域。不确定这个命名在不同国家/地区是否一致。
将区域级 shapefile 上传到 MapShaper http://mapshaper.com/test/MapShaper.swf
如果您不想优化生成的 geoJSON 的大小,可以跳过此步骤将 MapShaper 中的“简化级别”滑块设置为所需级别,并将简化的 shapefile 导出为“Shapefile - Polygons”
将 .shp 和 .shx 文件下载到解压原始 shapefile 的本地目录,将原始文件替换为简化文件。
导航到本地目录并运行以下命令,将<shapefile>替换为要转换的 shapefile 的实际名称。
ogr2ogr -f geoJSON region.json <shapefile>.shp
您现在应该拥有您所在国家/地区的 geoJSON 格式的区域。检查以确保在 region.json 中定义了路径并且维护了属性字段(例如区域名称)。
找到一个下载 geojson 的地方:geojson-maps.kyd.com.au使用来自Natural Earth的数据。
还有这些来自 Highcharts 的地图。这个最适合这个问题。
我最近一直在寻找同样的东西。有一个 github 帐号,提供世界上每个国家的 geojson,不幸的是,它似乎是 D3 不支持的 UTM 格式,所以如果你愿意筛选它们并一一转换为 wgs84 或有或者愿意写一个程序,这里是链接: https ://github.com/johan/world.geo.json