Shapefile dönüştürmek için ogr2ogr kullanırken özellik türlerini seçme


22

Şekil dosyaları yalnızca bir geometri türüne sahip olabilir, ancak birçok başka formatta (kml, geojson) birden fazla tür bulunabilir.

Shapefilfile dönüştürürken, ogr2ogr 'a, her tip için bir tane olmak üzere çoklu shapefiller oluşturmasını söylemek mümkün müdür?

"-Where" seçeneği yararlı olabilir gibi görünüyor, ancak man sayfası sözdizimini açıklamıyor.

Örneğin, işte başarısız olan bir komut:

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

Yanıtlar:


21

Http://www.gdal.org/ogr/ogr_sql.html adresindeki OGR SQL belgelerini okuyarak anladım.

Bu, her geometri tipi için bir komut ve bir çıktı dosyası kullanarak çalışır:

$ 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

Eğer outputparametre yerine dosya adının bir dizindir, ogr2ogr otomatik olarak ayrı Şekil dosyaları içine tüm geometri türlerini dönüştürür:

ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml

Maalesef OP için bu KML için işe yaramaz, ancak ArcInfo Coverages ve GML gibi diğer birçok geometri tipi formatları için de geçerlidir. Buraya gönderme, çünkü geometri türünü seçme konusunda en yüksek oyu alan soru bu.

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: tek bir kml'yi shapefile'e dönüştür:

ogr2ogr -f "ESRI Şekil Dosyası" C: \ kml \ LJ0047.shp C: \ kml \ LJ0047_.kml

ogr2ogr: multiples kml dosyalarını shapefiles'e dönüştür:

(* .kml) içindeki% f için ogr2ogr - f "ESRI Shapefile"% ~ nf.shp% f

Giriş klasörüne erişmek gereklidir.


Teşekkürler, ama sorduğum soru bu değil.
slinkp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.