我尝试使用
ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON
我得到了输出<错误6:无法在shapefile图层上创建StringList类型的字段。错误1:尝试编写非多边形(POINT)
几何体以键入shapefile。错误1:在OGRGeoJSON层翻译失败后过早终止翻译
我们提供的GeoJSON输入采用标准geojson格式。
geojson的内容就像{分享我只从功能数组中抽出一部分}
{"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"
}
]
}
#1 楼
您必须强制使用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)
评论
为了充分利用Geojson,建议对点(和线,如果Geojson中有线)也进行相同的操作。这样,您可以从一个Geojson中获得两个或三个shapefile。
– AndreJ
13年11月16日16:09
@AndreJoost我同意你的观点,这只是一个例子。我会根据您的建议更新答案。谢谢。
– Antonio Falciano
13年11月16日16:37
并非解决方案,但我使用使用ogr2ogr构建的在线工具祝您好运:ogre.adc4gis.com
– JasonBK
2014年11月26日15:08
如果省略最后一个参数OGRGeoJSON,则效果很好
–雷纳
20/08/17在5:19
评论
欢迎来到SE.GIS论坛。看看类似的问题gis.stackexchange.com/questions/13762 / ...感谢您的欢迎:)我在发布之前已经浏览了该链接。我不想使用FME,而是想使用FWTools for linux来做。我早些时候已经将wkt转换为shapefile,这是令人满意的,但现在我具有geoJSON格式的相同数据,而不是wkt。并需要有shp文件,而我尝试执行该操作时会得到错误;
我投票将其保持打开状态,因为链接的问题不能回答这个问题。
对于ogr2ogr 1.9.2和1.10版本,您的测试数据转换对我来说很好。创建具有1个多边形的shapefile,没有任何错误。您的“用于Linux的FWTools”可能太旧了。 ogr2ogr --version说什么?
--version开关在FWTools 2.0.6附带的ogr2ogr版本中尚不存在,我还猜测它也不支持GeoJSON。 2.0.6确实很旧(〜2006年),是否有理由不能使用现代版本的GDAL?