ogr2ogrを使用してシェープファイルに変換するときにフィーチャタイプを選択しますか?


22

シェープファイルには1つのジオメトリタイプしか指定できませんが、他の多くの形式(kml、geojson)には複数のタイプを指定できます。

シェープファイルに変換する場合、ogr2ogrに各タイプに1つずつ複数のシェープファイルを作成するように指示することは可能ですか?

「-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)

回答:


21

http://www.gdal.org/ogr/ogr_sql.htmlにあるOGR SQLのドキュメントを読んで理解しました

これは、ジオメトリタイプごとに1つのコマンドと1つの出力ファイルを使用して機能します。

$ 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はすべてのジオメトリタイプを個別のシェープファイルに自動的に変換します。

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をシェープファイルに変換します:

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

ogr2ogr:倍数kmlファイルをシェープファイルに変換:

(* .kml)で%fを実行するにはogr2ogr -f "ESRI Shapefile"%〜nf.shp%f

入力フォルダーにアクセスする必要があります。


ありがとう、しかしそれは私が尋ねた質問ではない。
slinkp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.