使用ogr2​​ogr将GeoJSON转换为Shapefile?


24

我有一个GeoJson文件,我想使用FWTools中的ogr2ogr转换为ESRI Shapefile。

我尝试使用

ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON

我得到了输出

错误6:无法在shapefile图层上创建StringList类型的字段。错误1:尝试编写非多边形(POINT)几何体以键入shapefile。错误1:图层OGRGeoJSON转换失败后过早终止转换

我们提供的GeoJSON输入为标准geojson格式。

geojson的内容就像{分享我仅从features array中分享的一部分}

{"id":1223,
"properties":{"name":"3","level":2},
"map_version":11,"type":"FeatureCollection","x_id":1234,"obj_type":"LevelGeometry",
"features":[

{
"my_area":[131.40093253528894,33.58879853190332,6.515867411008615,3.490549810987222,-0.6237271428108215],
"id":1984791,
"location":{"type":"Point","coordinates":[131.4009325,33.5887985]},
"properties":{"display_name":"xyz"},
"type":"Feature",
"geometry":{"type":"Polygon","coordinates":[[[131.4009508,33.5888314],[131.4008895,33.5887946],[131.4009148,33.5887653],[131.4009761,33.5888020],[131.4009508,33.5888314]]]},
"obj_type":"Geometry"
}

]
}

2
欢迎来到SE.GIS论坛。有类似的问题gis.stackexchange.com/questions/13762/…–
Sunil,

感谢您的欢迎:)我在发布之前已经浏览了该链接。我不想使用FME,而是想使用FWTools for linux来做。我早些时候已经将wkt转换为shapefile,这是令人满意的,但是现在我具有geoJSON格式的相同数据,而不是wkt。并且需要有shp文件,而我尝试这样做时却得到了错误;
sidd.k,2013年

我投票将其保持打开状态,因为链接的问题未回答此问题。
Devdatta Tengshe

对于ogr2ogr 1.9.2和1.10版本,您的测试数据转换对我来说很好。创建具有1个多边形的shapefile,没有任何错误。您的“ Linux FWTools”可能太旧了。什么ogr2ogr --version发言权?
赫尔曼

1
在FWTools 2.0.6发行的ogr2ogr版本中,尚不存在--version开关。我还猜测它也不支持GeoJSON。2.0.6确实很旧(〜2006年),有没有理由不能使用现代版本的GDAL?
DavidF 2013年

Answers:


28

您必须强制使用SHP几何类型(因为SHP不支持GeoJSON Geometry Collection的几何类型),并使用以下-skipfailures选项:

ogr2ogr -nlt POINT -skipfailures points.shp geojsonfile.json OGRGeoJSON    
ogr2ogr -nlt LINESTRING -skipfailures linestrings.shp geojsonfile.json OGRGeoJSON
ogr2ogr -nlt POLYGON -skipfailures polygons.shp geojsonfile.json OGRGeoJSON

(经过GDAL 1.10.0测试,于2013/04/24发布)


2
为了最大程度地利用Geojson,我建议也对这些点(和线,如果您在Geojson中有线)运行相同的操作。这样,您可以从一个Geojson中获得两个或三个shapefile。
AndreJ

@AndreJoost我同意你的观点,这只是一个例子。我会根据您的建议更新答案。谢谢。
Antonio Falciano

2
并非解决方案,但我使用使用ogr2​​ogr构建的在线工具祝您好运:ogre.adc4gis.com
JasonBK 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.