วิธีการเปลี่ยนลำดับของคุณสมบัติใน shapefile หรือไม่?


18

ฉันมีรูปร่างไฟล์และฉันต้องการเปลี่ยนลำดับของคุณสมบัติ เป็นไปได้ไหม

ฉันต้องการเรียงลำดับคุณสมบัติใน shapefile เพราะฉันฝัง shapefile นี้ในแอพมือถือ แอปจะแสดงรายการคุณสมบัติและถึงแม้ว่าฉันสามารถเรียงลำดับได้ในขณะโหลด แต่ฉันต้องการเรียงลำดับ


4
เป้าหมายถูกต้องตามกฎหมายไม่ได้หมายความว่า หากคุณต้องการให้เรียงลำดับให้ใช้ผลลัพธ์ของแบบสอบถามอย่าคิดว่าเรียงลำดับแล้วและจะยังคงเรียงลำดับ
GuillaumeC

คำตอบ:


6

คุณสามารถเปิดตารางแอตทริบิวต์ใน ArcMap และคลิกขวาที่ส่วนหัวของคอลัมน์และเลือกเรียงจากน้อยไปมาก ... / มากไปหา ... สำหรับเขตข้อมูลเดียว

สำหรับหลาย ๆ ฟิลด์คุณต้องคลิกการจัดเรียงขั้นสูงเพื่อเลือกหลายฟิลด์

หมายเหตุ: ตัวอย่างเช่นการเพิ่มฟิลด์รหัสลำดับตามการเรียงลำดับปัจจุบัน (ซึ่งเป็นการชั่วคราวถูกเก็บไว้ในแผนที่ / mxd นี้เท่านั้น) เมื่อใช้วิธีการข้างต้นจะได้รับคำสั่งจาก OID / ObjectID ดั้งเดิมของคลาสคุณลักษณะ

มี ArcScript ที่พร้อมใช้งานซึ่งจะเรียงลำดับระเบียนอย่างถาวรและส่งออกรูปร่างไฟล์ใหม่: http://arcscripts.esri.com/details.asp?dbid=16771

ฉันหวังว่าเมื่อคุณระบุ 'ลำดับของคุณสมบัติ' ว่านี่เป็นลำดับที่พบในตารางแอตทริบิวต์และไม่ได้วาดลำดับสำหรับสารบัญ / ระดับสัญลักษณ์



7

นี่คือวิธีการแก้ปัญหาที่จะเขียน shapefile ogr2ogrใหม่และเรียงลำดับโดยใช้เครื่องมือบรรทัดคำสั่ง

ตัวอย่างเช่น Shapefile orig.shpมีเขตข้อมูลตัวเลขvolumeเพื่อเรียงลำดับ คำสั่ง SQL เฉพาะนี้ทำการเรียงลำดับย้อนกลับ (พร้อมDESC) เพื่อให้คุณลักษณะที่มีvolumeค่าขนาดใหญ่ถูกวาดก่อนคุณลักษณะ (ใต้) ที่มีค่าน้อย:

ogr2ogr -sql "SELECT * FROM orig ORDER BY volume DESC" sorted.shp orig.shp

5

หากคุณสามารถเข้าถึงใบอนุญาต arcinfo คุณสามารถใช้การเรียงลำดับใน (กล่องเครื่องมือการจัดการข้อมูล) ซึ่งเขียนบันทึกลงในรูปร่างใหม่หรือ gdb fc เชิงพื้นที่หรือการเรียงลำดับแอตทริบิวต์


โชคร้ายที่มันทำงานร่วมกับ FGDB ไม่ได้กับรูปร่าง
Tato

1
เมื่อ, เครื่องมือทำงานกับ fgdb หรือ shapefile เป็นอินพุทและเอาท์พุท, ฉันไม่รู้เลยว่าความคิดเห็นของคุณหมายถึงอะไร
gotchula


2

วิธีที่ง่ายและรวดเร็วมากในการเรียงลำดับเลเยอร์ไฟล์ไฟล์ (โดยใช้ฟิลด์ต่าง ๆ )

1 - ส่งออกรูปร่างไฟล์เป็น CSV (เลือกตัวคั่นที่ดีเช่นเซมิโคลอน) และเพิ่ม GEOMETRY โดยใช้ "เลเยอร์ตัวเลือก" -> "AS WKT"

ป้อนคำอธิบายรูปภาพที่นี่

2 - เปิด file.csv พร้อม LIBREOFFICE (calc) และใช้ MENU-> DATA-> SORT (ใช้งานง่ายมากทรงพลังและรวดเร็วมาก (เรียงตามฟีเจอร์ fly 50000 โดยใช้คอลัมน์ 3 คอลัมน์เช่นตัวเลือกการเรียงจากน้อยไปมากและจากมากไปน้อย มีโน๊ตบุ๊คช้ามาก;))

3 - บันทึกไฟล์อีกครั้งจาก LIBREOFFICE (calc) เป็น "Text CSV" (ทำเครื่องหมาย "แก้ไขการตั้งค่าตัวกรอง" และเลือกตัวคั่นเป็น 'เซมิโคลอน' ไม่ต้องเตือนจาก libreoffice บันทึกเช่น CSV และเลือก 'เซมิโคลอน' เป็นตัวคั่น

4 - จาก Qgis เปิด file.csv ใหม่ (และเรียงลำดับ) จากเมนู 'เพิ่มเลเยอร์ "-> เพิ่มเลเยอร์ข้อความตัวคั่น

ข้อดี: - เร็วมากเรียงลำดับจากฟิลด์ต่าง ๆ - ใช้ได้กับข้อมูลที่เข้ารหัส UTF_8

ข้อเสีย: - ต้องการ LIBREOFFICE (แต่เป็นซอฟต์แวร์โอเพ่นซอร์ส)

วิธีอื่นในการเรียงลำดับ (รองรับ 2 และ 3 และเร็วที่สุด) โดยใช้คอนโซล (BASH)

  • เปิดคอนโซลและไปที่ที่คุณมี file.csv

    สมมติว่าคุณต้องการเรียงไฟล์ด้วยกุญแจ:

    field6 (รายละเอียด) + field1 (ascen) + Field3 (desce)

    ดังนั้นคำสั่งจะเป็น:

    sort -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv

    หมายเหตุ:

    • คุณสามารถเพิ่ม -kn, n สำหรับทุกคอลัมน์หมายเลข 'n' (ฟิลด์) ที่คุณต้องการเพิ่มใน "sort key" ของคุณ
    • การเพิ่ม 'r' หลังจากทุก ๆ n, n จะเรียงลำดับในโหมดย้อนกลับ (โคตร)
    • ต้องผ่านตัวคั่นอักขระที่ใช้ในไฟล์ csv ด้วย -t param

วิธีอื่นในการเรียงลำดับโดยไม่มี LibreOffice โดยใช้ bash (คอนโซล):
Juanma Font

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