Chọn loại tính năng khi sử dụng ogr2ogr để chuyển đổi sang shapefile?


22

Shapefiles chỉ có thể có một loại hình học, nhưng nhiều định dạng khác (kml, Geojson) có thể có nhiều loại.

Khi chuyển đổi sang shapefiles, có thể nói với ogr2ogr để tạo nhiều shapefile, một cho mỗi loại?

Có vẻ như tùy chọn "-where" có thể hữu ích nhưng trang man không giải thích cú pháp.

Ví dụ: đây là một lệnh thất bại:

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

Câu trả lời:


21

Tìm hiểu nó bằng cách đọc tài liệu SQL OGR tại http://www.gdal.org/ogr/ogr_sql.html

Điều này hoạt động, sử dụng một lệnh và một tệp đầu ra cho mỗi loại hình học:

$ 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

Nếu outputtham số là một thư mục thay vì tên tệp, ogr2ogr sẽ tự động chuyển đổi tất cả các loại hình học thành các shapefiles riêng biệt:

ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml

Thật không may cho OP, điều này không hoạt động đối với KML, nhưng đối với một số định dạng nhiều dạng hình học khác như ArcInfo Coverages và GML. Đăng ở đây vì đây là câu hỏi được bình chọn cao nhất về việc chọn loại hình học.

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: chuyển đổi một kml thành shapefile:

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

ogr2ogr: chuyển đổi nhiều tập tin kml thành shapefiles:

cho% f trong (* .kml) làm ogr2ogr -f "ESRI Shapefile"% ~ nf.shp% f

Nó là cần thiết để truy cập vào thư mục đầu vào.


Cảm ơn, nhưng đó không phải là câu hỏi tôi đã hỏi.
slinkp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.