Làm thế nào để thay đổi thứ tự các tính năng trong một shapefile?


18

Tôi có một shapefile và tôi muốn thay đổi thứ tự của các tính năng. Điều đó có thể không?

Tôi muốn sắp xếp các tính năng trong shapefile vì tôi đang nhúng shapefile này trong một ứng dụng di động. Ứng dụng sẽ hiển thị danh sách các tính năng và mặc dù tôi có thể thực hiện sắp xếp khi tải, tôi muốn sắp xếp chúng.


4
Mục tiêu là hợp pháp, có nghĩa là không. Nếu bạn cần chúng được sắp xếp, hãy sử dụng kết quả của một truy vấn, đừng cho rằng chúng đang và sẽ vẫn được sắp xếp.
GuillaumeC

Câu trả lời:


6

Bạn luôn có thể mở bảng thuộc tính trong ArcMap và nhấp chuột phải vào tiêu đề cột và chọn Sắp xếp tăng dần ... / Giảm dần ... cho các trường đơn lẻ.

Thay vào đó, đối với nhiều trường, bạn sẽ nhấp vào Sắp xếp nâng cao để chọn nhiều trường.

LƯU Ý: Việc thêm vào, ví dụ, trường ID tuần tự dựa trên cách sắp xếp hiện tại (tạm thời, chỉ được lưu trữ trong bản đồ / mxd này) khi sử dụng phương thức trên sẽ được OID / ObjectID gốc của lớp tính năng sắp xếp theo thứ tự.

Có một ArcScripts có sẵn sẽ sắp xếp các bản ghi vĩnh viễn và xuất ra một shapefile mới: http://arcscripts.esri.com/details.asp?dbid=16771

Tôi hy vọng rằng khi bạn nêu 'thứ tự các tính năng' thì đây là thứ tự được tìm thấy trong bảng thuộc tính và không vẽ thứ tự cho bảng mức độ nội dung / ký hiệu.



7

Đây là một giải pháp để viết lại một shapefile mới và được sắp xếp bằng cách sử dụng công cụ dòng lệnh GDAL / OGR ogr2ogr.

Ví dụ, một shapefile orig.shpcó một trường số volumeđể sắp xếp. Câu lệnh SQL cụ thể này thực hiện sắp xếp ngược (với DESC) để các tính năng có volumegiá trị lớn được vẽ trước các tính năng (bên dưới) với các giá trị nhỏ:

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

5

Nếu bạn có quyền truy cập vào giấy phép arcinfo, bạn có thể sử dụng Sắp xếp trong (hộp công cụ quản lý dữ liệu) để ghi các bản ghi vào một shapefiles mới hoặc sắp xếp thuộc tính hoặc không gian dựa trên gdb fc


Thật không may, nó hoạt động với FGDB, không phải với hình dạng
tato

1
tato, công cụ hoạt động với fgdb hoặc shapefile làm đầu vào và đầu ra, tôi không biết ý kiến ​​của bạn ở trên có nghĩa là gì.
gotchula


2

Một phương pháp rất, rất NHANH CHÓNG và dễ dàng để sắp xếp một lớp shapefile (sử dụng các trường khác nhau).

1 - Xuất shapefile sang CSV (chọn dấu tách tốt, như dấu chấm phẩy) và thêm GEOMETRY bằng "tùy chọn lớp" -> "NHƯ WKT"

nhập mô tả hình ảnh ở đây

2 - Mở file.csv bằng LIBREOFFICE (calc) và sử dụng MENU-> DATA-> SORT (rất trực quan, mạnh mẽ và RẤT NHANH (Sắp xếp trên 50000 tính năng bằng cách sử dụng 3 cột như sắp xếp khóa, tăng dần và giảm dần, và i có một cuốn sổ rất chậm;))

3 - Lưu lại tệp từ LIBREOFFICE (calc) dưới dạng "Văn bản CSV" (đánh dấu "Chỉnh sửa cài đặt bộ lọc" và chọn dấu phân cách là 'dấu chấm phẩy', không quan trọng cảnh báo từ libreoffice, lưu như CSV và chọn 'dấu chấm phẩy' làm dấu phân cách)

4 - Từ Qgis mở tệp mới.csv (và được sắp xếp) từ menu 'Thêm lớp "-> Thêm lớp văn bản phân cách.

PROS: - Rất, rất nhanh, sắp xếp từ nhiều trường khác nhau - Hoạt động tốt với dữ liệu được mã hóa UTF_8

Nhược điểm: - Cần LIBREOFFICE (nhưng nó là phần mềm nguồn mở)

Phương pháp thay thế để sắp xếp (duy trì điểm 2 và 3, và nhanh nhất) bằng bàn điều khiển (BASH)

  • Mở bàn điều khiển và đi đến nơi bạn có file.csv

    Giả sử bạn muốn sắp xếp tệp với khóa:

    trường6 (desc) + trường1 (ascen) + trường3 (giảm dần)

    vì vậy lệnh sẽ là:

    sắp xếp -t ';' -k6,6r -k1,1 -k3,3r tệp.csv> file_sort.csv

    GHI CHÚ:

    • bạn có thể thêm -kn, n cho mỗi số cột 'n' (trường) bạn cần thêm vào "khóa sắp xếp" của mình
    • thêm 'r' sau mỗi n, n sẽ sắp xếp theo chế độ đảo ngược (gốc)
    • Phải vượt qua dấu phân cách ký tự được sử dụng vào tệp csv với -t param

Phương pháp thay thế để sắp xếp mà không cần LibreOffice, sử dụng bash (bảng điều khiển):
Phông chữ Juanma

-3
  1. Xuất dữ liệu dưới dạng csv
  2. Mở bằng Excel, chuyển đến Dữ liệu ---- Sắp xếp --- Mở rộng vùng chọn và thế là xong
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.