Memilih tipe fitur ketika menggunakan ogr2ogr untuk dikonversi ke shapefile?


22

Shapefile hanya dapat memiliki satu jenis geometri, tetapi banyak format lain (kml, geojson) dapat memiliki beberapa jenis.

Ketika mengonversi ke shapefile, apakah mungkin untuk memberi tahu ogr2ogr untuk membuat beberapa shapefile, satu untuk setiap jenis?

Sepertinya opsi "-di mana" mungkin berguna tetapi halaman manual tidak menjelaskan sintaks.

Misalnya, inilah perintah yang gagal:

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

Jawaban:


21

Mencari tahu dengan membaca dokumentasi OGR SQL di http://www.gdal.org/ogr/ogr_sql.html

Ini berfungsi, menggunakan satu perintah dan satu file keluaran per jenis geometri:

$ 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

Jika outputparameternya adalah direktori alih-alih nama file, ogr2ogr akan secara otomatis mengonversi semua tipe geometri menjadi shapefile terpisah:

ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml

Sayangnya untuk OP ini tidak berfungsi untuk KML, tetapi ini berlaku untuk beberapa format tipe geometri multipel lainnya seperti ArcInfo Coverages dan GML. Posting di sini karena ini adalah pertanyaan pilihan tertinggi pada pemilihan tipe geometri.

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: ubah satu kml menjadi shapefile:

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

ogr2ogr: konversikan banyak file kml ke shapefile:

untuk% f dalam (* .kml) lakukan ogr2ogr -f "ESRI Shapefile"% ~ nf.shp% f

Diperlukan untuk mengakses folder input.


Terima kasih, tapi itu bukan pertanyaan yang saya ajukan.
slinkp
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.