将一个shapefile (.shp) 转换成 xml/json

68

我正在使用一个 shapefile(.shp、.dbf等)文件,希望将其转换为 xml 格式。我使用的是 Mac,但无法找到适用于转换的应用程序。请问是否有一种方法可以将这种文件格式转换成 xml?


1
你也可以尝试使用http://techslides.com/demos/mapping/shapefile-geojson-converter.html。它是在线的,对我来说很有效。 - gis_wild
5个回答

95

按照dassouki所说,从http://www.kyngchaos.com/software:frameworks获取GDAL。使用它将shapefile转换为GeoJSON ,操作如下:

$ ogr2ogr -f "GeoJSON" output.json input.shp

例如

$ ogr2ogr -f "GeoJSON" /tmp/world.json world_borders.shp world_borders
$ cat /tmp/world.json
{
"type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": { "CAT": 1.000000, "FIPS_CNTRY": "AA",
  "CNTRY_NAME": "Aruba", "AREA": 193.000000, "POP_CNTRY": 71218.000000 }, 
  "geometry": { "type": "Polygon", "coordinates": [ [ [ -69.882233, ...
  ...

6
也可以在Homebrew中获取!brew install gdal - Diolor
2
有关如何获取 xml 输出的任何提示吗? - gregmacfarlane
这对一些巨大的shapefile(~500MB)有效,而其他一些则崩溃了(例如QGIS)。 - Brian Burns
这很好!只是不要忘记添加投影,如果用于OpenStreetMap作为参数: -t_srs crs:84 - PetrV

46

GDAL是你的好朋友。使用ogr2ogr库,这里有一个速查表

如果你想要一个优秀的GIS应用程序,请安装QGIS并下载gdal转换插件。


31
我发现了这个网站,可以转换多种地理数据格式:http://mygeodata.eu/apps/converter/index_en.html。 在不到两分钟的时间内,我就能够将一个ShapeFile zip文件转换成一个GeoJson文件! (与此同时,我还在尝试使用GDAL,但它仍在下载...)

为什么你在以下命令的最后一个参数中没有传递任何扩展名(用粗体突出显示)来指定shapefile的名称?ogr2ogr -f "GeoJSON" /tmp/world.json world_borders.shp world_borders - JayeshMori
谢谢您提供这个链接。我能够立即将一系列的形状文件输出转换为GeoJSON。 - uadrive
这对我来说是最简单的解决方案。感谢提供链接。 - ShadeTreeDeveloper
1
链接已失效(404),请尝试使用http://converter.mygeodata.eu/,虽然该工具对我无效。 - sham

8

这个在线转换工具对我很有用。

http://mapshaper.org/

我上传了我的.shp文件,然后将其导出为GeoJson格式。


3

我还可以提供一个非常简略的答案。

将geoserver安装在您的机器上(您可以下载一个自包含的zip文件)

设置一个数据存储库,指向您的shapefile。

设置一个图层,指向您的数据存储库。

转到预览图层页面,并请求WFS作为GML预览。

大功告成 - 您的shapefile的xml表示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接