转换为shapefile时,是否可以告诉ogr2ogr创建多个shapefile,每个对应一个类型?
似乎“ -where”选项可能有用,但手册页中没有说明语法。例如,以下命令失败:
$ wget http://a841-tfpweb.nyc.gov/jackson-heights/wp-content/themes/tfp/kml/transit.kml
$ ogr2ogr -f "ESRI Shapefile" transit.shp transit.kml
Warning 6: Normalized/laundered field name: 'Description' to 'Descriptio'
ERROR 1: Attempt to write non-linestring (POINT) geometry to ARC type shapefile.
ERROR 1: Terminating translation prematurely after failed
translation of layer Transit (use -skipfailures to skip errors)
#1 楼
通过阅读http://www.gdal.org/ogr/ogr_sql.html上的OGR SQL文档,可以弄清楚这一点。每个几何类型使用一个命令和一个输出文件即可。
$ ogr2ogr -where "OGR_GEOMETRY='Point'" -f "ESRI Shapefile" transit_points.shp transit.kml
$ ogr2ogr -where "OGR_GEOMETRY='LineString'" -f "ESRI Shapefile" transit_linestrings.shp transit.kml
#2 楼
如果output
参数是目录而不是文件名,则ogr2ogr会自动将所有几何类型转换为单独的shapefile:ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml
不幸的是,这对OP无效。适用于KML,但适用于其他多种几何类型格式,例如ArcInfo Coverages和GML。在此处发布信息是因为这是有关选择几何类型的最高票数。
D:\>dir /s/b converted\*.shp
D:\converted\NHN_HD_ISLAND_2.shp
D:\converted\NHN_HD_MANMADE_0.shp
...
D:\converted\NHN_TO_NAMEDFEA_0.shp
D:\converted\NHN_WORKUNIT_LIMIT_2.shp
#3 楼
ogr2ogr:将单个kml转换为shapefile:ogr2ogr -f "ESRI Shapefile" C:\kml\LJ0047.shp C:\kml\LJ0047_.kml
ogr2ogr:将多个kml文件转换为shapefile:
for %f in (*.kml) do ogr2ogr -f "ESRI Shapefile" %~nf.shp %f
必须访问输入文件夹。
评论
谢谢,但这不是我问的问题。
– slinkp
2012年6月4日19:08