2012-03-03 21 views
31

我正在开发一个需要使用d3.js显示国家和城市地图的项目。GeoJson World Database

实际上,D3支持GeoJson格式。通常,我猜GeoJson格式是从其他格式转换而来的。

我发现这个GeoJSON的数据的一些地方:

http://mbostock.github.com/protovis/ex/countries.js

但是,这仅仅是一个国家的名单,我找了,让我来设置一个ID的能力,一些服务或程序,得到这种格式,并将其转换为GeoJson,或更好地在GeoJson中获得。

谢谢!

回答

69

这是否需要成为一项服务?下面是我如何在过去走近这个,使用自由/开源工具:

  • 下载的公共领域的形状文件从Natural Earth Data

  • 使用Quantum GIS转换的.shp到.geojson(一步,在 “图层>另存为...”)

现在你有高分辨率的GeoJSON的数据。 Here, have some countries.

虽然这是一个非常大的文件,所以您需要分解它。但是您不需要为此提供服务,只需为每个国家/地区使用由ID命名的静态文件即可。这很容易在你选择的实用程序中生成脚本(Python,Ruby,node.js)。

+0

谢谢!这就是我正在寻找的! – todotresde 2012-03-07 12:25:08

+5

对于那些需要更详细的答案的人:1.从Natural Earth Data下载地图。 2.解压并找到Shape文件。 3。将形状文件拖到QGIS。 4.如上所述的“图层>另存为”。 – daCoda 2014-02-20 01:03:56

+0

更快:通过https://mygeodata.cloud/converter/shp-to-geojson在线转换 – cyrianox 2017-11-04 03:59:53

13

请注意,通过GDAL library,您还可以使用命令行ogr2ogr转换shapefile。例如:

$ ogr2ogr -f geojson source_file.shp dst_file.json 

将其转换成source_file.shp以GeoJSON格式dst_file.json

在这里阅读更多:

Convert a shapefile (.shp) to xml/json

2

看看https://github.com/mledoze/countries

它有每个国家geoJSONs。 (医学决议我会说)

countries.json包含每个国家的描述,包括本地化的国家名称,坐标(您可以显示标签)和首都名称。