วิธีแปลง Shapefile เป็น WKT


12

ฉันพยายามแปลงไฟล์เชพเป็นรูปแบบ Well Known Text (WKT) อย่างง่ายในตัวอย่างด้านล่าง (จากhttp://en.wikipedia.org/wiki/Well-known_text )

MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),
(30 20, 20 25, 20 15, 30 20)))

ฉันรู้ว่าฉันใช้ QGIS เพื่อบันทึก shapefile เป็น CSV และฉันสามารถใช้ ogr2ogr เพื่อทำการแปลงตัวเลขได้ ในความเป็นจริงogr2ogr -f CSV out.wkt source.shp -lco GEOMETRY=AS_WKTทำให้ฉันใกล้ที่สุดเท่าที่ฉันเคยมา แต่ไม่มากนัก ข้อเสนอแนะใด ๆ

PS เท่าที่สังเกตจาก Mapperz หัวข้อนี้จะคล้ายกับคนนี้ หัวข้อนั้นในขณะที่ให้แนวทาง ogr2ogr ที่ฉันระบุไว้ข้างต้นไม่ได้แก้ปัญหาเฉพาะนี้ เอาต์พุต ogr2ogr ที่ฉันได้รับหน้าตาแบบนี้ (ฉันตัดทอนเส้น) เห็นได้ชัดว่าฉันไม่ได้คิดวิธีรับ ogr2ogr เพื่อใช้มัลติโพลิกอน

WKT,AREA,PERIMETER,PINUPOND_,PINUPOND_I,CODE
"POLYGON ((-120.630531650950061 50.838562484449184, . . .
"POLYGON ((-123.206067372148397 51.038984074378327, . . .


ปัญหาของเอาต์พุต ogr2ogr คืออะไร
til_b

@til_b: แก้ไขแล้ว
Gregory

1
รูปร่างของคุณเป็นทวีคูณใช่ไหม
Jürgen Zornig

@ JürgenZornig: ฉันจะบอกได้อย่างไร มันสมเหตุสมผลแล้วที่จะเป็นรูปหลายเหลี่ยม แต่ฉันต้องการยืนยันว่า
Gregory

คำตอบ:


10

Well Known Text ไม่ได้มีไว้สำหรับการบันทึกเลเยอร์เช่นไฟล์รูปร่างที่ประกอบด้วยวัตถุจำนวนมาก WKT กำหนดวิธีแสดงเรขาคณิตของวัตถุหนึ่งชิ้น เรขาคณิตนั้นอาจเป็นส่วนเดียวหรือหลายส่วน รูปทรงหลายส่วนหมายถึงรูปทรงเรขาคณิตของวัตถุหนึ่งชิ้นประกอบด้วยหลายส่วน ตัวอย่างเช่นหมู่เกาะฮาวายสามารถแสดงเป็นวัตถุเดียว แต่ประกอบด้วยรูปทรงเรขาคณิตจำนวนมาก

ไฟล์รูปร่างคือชุดของวัตถุประเภทนี้ วัตถุมักจะมีข้อมูลคุณลักษณะบางอย่างที่เป็นส่วนหนึ่งของไฟล์รูปร่างด้วย

วิธี ogr2ogr ของคุณแปลงวัตถุเหล่านี้เป็นรูปแบบ csv ด้วยเรขาคณิต WKT (และการแทนข้อความของแอตทริบิวต์) ถ้าคุณต้องการรวมรูปเรขาคณิตทั้งหมดเป็นหนึ่งเดียวกับ MULTIPOLYGON คุณจะต้องแปลงวัตถุทั้งหมดเป็นรูปทรงเรขาคณิตหลายอันก่อน คุณสามารถทำได้ใน QGIS เลือกจากเครื่องมือ Vector Geometry Tools จากนั้นเลือก Singleparts to Multiparts จากนั้นคุณสามารถแปลงเป็น wkt ด้วย ogr2ogr

หวังว่านี่จะสมเหตุสมผล


มันสมเหตุสมผลและฉันจะมีโอกาสลองในไม่ช้า
Gregory

โอเคใน QGIS ฉันใช้ Vector / Geometry Tools / ส่วนเดียวเพื่อ multipart ฉันบันทึกผลลัพธ์เป็น shapefile ใหม่ แต่เมื่อฉันโหลดไฟล์นั้นลงใน QGIS มันจะว่างเปล่าและตารางแอตทริบิวต์นั้นว่างเปล่าทั้งหมด (อาจเป็นโมฆะอาจเป็นคำอธิบายที่ดีกว่าเนื่องจากไม่มีส่วนหัว)
Gregory

คุณ @pyrogerg เลือกเขตข้อมูลที่ไม่ซ้ำกันเมื่อเครื่องมือร้องขอหรือไม่ นั่นหมายถึงเครื่องมือ "กลุ่ม" ฟีเจอร์ทั้งหมดที่มีค่าเท่ากันในฟิลด์นั้น หากคุณไม่มีฟิลด์ใด ๆ ที่คุณต้องการสร้างซ้ำคุณสามารถสร้างได้ด้วยเครื่องคิดเลขฟิลด์ คุณสามารถเข้าถึงได้จากตารางแอตทริบิวต์ ตรวจสอบให้แน่ใจว่าเลเยอร์อยู่ในโหมดแก้ไข (ไอคอนปากกา) จากนั้นเลือกเครื่องคำนวณภาคสนามและ "คำนวณ" สำหรับค่าตัวอย่าง 1 ถึงทุกแถวของเขตข้อมูลใหม่
LauriK

1
+1 ฉันมีอิสระที่จะอธิบายการแก้ไขของคุณให้ชัดเจนยิ่งขึ้นโดยระบุว่าผลลัพธ์จะมีแอตทริบิวต์
whuber

5

ฉันเขียนปลั๊กอิน QGIS ที่บันทึกเลเยอร์ที่ใช้งานไปยังไฟล์. wkt ทันที

ชื่อของปลั๊กอินคือ "WktExport" คุณสามารถค้นหาได้ในแผงควบคุมปลั๊กอิน QGIS ที่เป็นค่าเริ่มต้น

BTW ลิงก์ไปยังหน้าปลั๊กอินคือ:

https://plugins.qgis.org/plugins/wktexport/

ปลั๊กอิน "WktExport" สำหรับ QGIS สร้างโฟลเดอร์ชื่อ "WktExport" โดยที่ SHP ดั้งเดิมอยู่และใส่ในไฟล์ไฟล์. wkt ที่ประกอบด้วยองค์ประกอบในรูปแบบ WKT ascii ของวัตถุทั้งหมดของ SHP (แต่ยัง KML หรือไฟล์ต้นฉบับอื่น ๆ ) รูปแบบ).

ชื่อของ. wkt มีวันที่และเวลาในการบันทึกดังนั้นการบันทึกหลายครั้งคุณจะมีไฟล์เดียวกันหลายเวอร์ชัน

สิ่งนี้อาจเป็นประโยชน์ในการสร้างภาพเคลื่อนไหวของความคืบหน้าในการทำงานของ carthographic หรือเพื่อบันทึกสถานะปัจจุบันของไฟล์

กรุณาส่งข้อความไปยังรายการ qgis-developer โดยเฉพาะถ้าคุณพบว่า wktexport มีประโยชน์


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