使用ogr2​​ogr转换为shapefile时是否选择要素类型?


22

Shapefile只能具有一种几何类型,但是许多其他格式(kml,geojson)可以具有多种类型。

转换为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)

Answers:


21

通过阅读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

4

如果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

-1

ogr2ogr:将单个kml转换为shapefile:

ogr2ogr -f“ ESRI Shapefile” C:\ kml \ LJ0047.shp C:\ kml \ LJ0047_.kml

ogr2ogr:将多个kml文件转换为shapefile:

对于(* .kml)中的%f,请执行ogr2ogr -f“ ESRI Shapefile”%〜nf.shp%f

有必要访问输入文件夹。


谢谢,但这不是我问的问题。
slinkp 2012年
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.