การเลือกประเภทสถานที่เมื่อใช้ ogr2ogr เพื่อแปลงเป็นรูปร่างไฟล์?


22

Shapefiles สามารถมีรูปทรงเรขาคณิตได้หนึ่งประเภทเท่านั้น แต่รูปแบบอื่น ๆ อีกมากมาย (kml, geojson) สามารถมีได้หลายประเภท

เมื่อแปลงเป็นรูปร่างไฟล์เป็นไปได้หรือไม่ที่จะบอกให้ ogr2ogr สร้างไฟล์หลายรูปร่างหนึ่งไฟล์สำหรับแต่ละประเภท?

ดูเหมือนว่าตัวเลือก "-where" อาจมีประโยชน์ แต่หน้า man ไม่ได้อธิบายเกี่ยวกับไวยากรณ์

ตัวอย่างเช่นนี่คือคำสั่งที่ล้มเหลว:

$ 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

คิดออกโดยการอ่านเอกสาร OGR SQL ที่http://www.gdal.org/ogr/ogr_sql.html

ใช้งานได้โดยใช้หนึ่งคำสั่งและไฟล์เอาต์พุตหนึ่งไฟล์ต่อประเภทรูปทรงเรขาคณิต:

$ 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 เดี่ยวเป็น shapefile:

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

ogr2ogr: แปลงไฟล์ kml หลายรายการเป็น shapefiles:

สำหรับ% f ใน (* .kml) ทำ ogr2ogr -f "ESRI Shapefile"% ~ nf.shp% f

จำเป็นต้องเข้าถึงโฟลเดอร์อินพุต


ขอบคุณ แต่นั่นไม่ใช่คำถามที่ฉันถาม
slinkp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.