Chỉ hiển thị các tính năng được chọn trên bản đồ trong QGIS?


30

Không chắc tùy chọn này có tồn tại hay không, nhưng phiên bản QGIS mới ẩn giấu rất nhiều thứ ở một nơi khác và điều này có vẻ đơn giản đến nỗi tôi tin chắc rằng có thể làm điều này trước đây.

Tôi có một bộ dữ liệu khá lớn với các bản nhạc tàu. Bây giờ tôi muốn phân tích các rãnh tàu riêng lẻ (được tạo từ lớp điểm với points2one) - tuy nhiên, nó quá đông đúc đến nỗi khó có thể nhìn vào các rãnh riêng lẻ. Tôi không muốn lưu mỗi bản nhạc thành một lớp mới, vì vậy tôi tự hỏi liệu có thể chọn một bản nhạc trong bảng thuộc tính và chỉ hiển thị bản nhạc đó trên bản đồ / ẩn các bản nhạc khác không?

Câu trả lời:


33

Câu trả lời của Kadeem sẽ ngăn các tính năng của bạn hiển thị, nhưng chúng vẫn sẽ xuất hiện, nếu bạn đang cố gắng xác định một tuyến đường tàu cá nhân, bạn có thể bấm nhầm một tính năng vô hình. Những gì có vẻ như bạn cần làm là xác định lớp của bạn sao cho những tính năng đó không tồn tại. Trong ArcGIS, điều này thường được thực hiện bằng Truy vấn Định nghĩa, trong QGIS, lệnh tương đương là Tập hợp con. Chuyển đến Thuộc tính của lớp của bạn, bên dưới tab Chung, ở dưới cùng là hộp Tập hợp tính năng, nhấp vào nút bên dưới để hiển thị Trình tạo truy vấn:

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

Trình tạo truy vấn sẽ giúp bạn tạo một truy vấn SQL để xác định các tính năng nào trong lớp của bạn sẽ thực sự được hiển thị trong dự án của bạn. Bất kỳ tính năng nào không được trả về bởi truy vấn đều được hiển thị, không chỉ trực quan mà hoàn toàn (chúng không bị xóa khỏi dữ liệu của bạn, tất nhiên, chúng chỉ được xác định tồn tại cho đến khi bạn xóa truy vấn Subset).


Dan, cảm ơn rất nhiều !!! Đây là những gì tôi đang tìm kiếm, phức tạp hơn một chút so với tôi hy vọng nhưng thực hiện các mẹo! Rất hữu ích, cảm ơn!
Kristina

Đó là câu trả lời. Mẹo hay đấy Dan!
kadéem

Kỳ dị. Một thời gian trước tôi đã làm điều này và nó đã làm việc. Bây giờ tôi muốn làm lại trên một lớp khác và hộp Tính năng con có màu xám, cũng như nút của QueryBuilder! Bất cứ đề nghị nào???
Patrick Van Den Noortgaete

Giải quyết, nhưng không rõ tại sao. Tôi đã lưu các thay đổi tôi đã thực hiện và sau đó Nút QueryBuilder có sẵn ...
Patrick Van Den Noortgaete

1
@SimoA. Nếu dữ liệu của bạn ở trong Excel, bạn có thể lọc nó ở đó, thêm trường mới nơi bạn chuyển đổi VALUEsang 'VALUE',, sau đó sao chép và dán trường đó vào hộp truy vấn bằng truy vấn IN.
Dan C

15

Điều này hiện có thể sử dụng chỉ bằng các lựa chọn và ký hiệu dựa trên quy tắc.

Điều này yêu cầu plugin Expression Plus (đối với QGIS 2.x. 3.0 có chức năng tích hợp).

Tạo một hệ thống ký hiệu dựa trên quy tắc với bộ lọc:

QGIS 3.0+ (từ kẻ chinh phục trong các bình luận):

is_selected()

QGIS 2,12-2,18:

isselected( @layer_name )

Hoặc QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )

Bây giờ chỉ các tính năng được chọn đáp ứng quy tắc này sẽ được hiển thị.

Bạn cũng có thể có quy tắc ELSE cho tất cả các tính năng không được chọn.

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


1
Đây chính xác là những gì tôi đang tìm kiếm - cảm ơn vì câu trả lời này
geobar

HeikkiVesanto, nơi tôi chèn bộ lọc này?
newGIS

Tôi đã thêm một hình ảnh.
HeikkiVesanto

1
Sử dụng QGIS 2.18,14 và biểu thức hoạt động được chọn ngay ('layer_name'). Sử dụng (@layer_name) trả về 0 kết quả.
Techie_Gus

2
Trong QGIS 3 trở lên, tính năng này được tích hợp sẵn. Bạn có thể tìm thấy nó Record and Attributestrong Expression String Builder. Ngoài ra, bạn không cần phải đặt tên lớp nữa và đừng quên gạch dưới giữa isselected. Dưới đây là một ví dụ cho QGIS 3 trở lên : is_selected().
kẻ chinh phục

12

Kristina, tôi cho rằng có một thuộc tính trong bảng của bạn cho phép bạn xác định một bản nhạc duy nhất? Ví dụ:

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24

Nếu bạn mở bảng thuộc tính, bạn có thể tìm thấy biểu tượng epsilon (trong hình bên dưới, hình thứ 4).

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

Điều này cho phép bạn gõ một biểu thức; ví dụ:

"track_id" = 24

Khi bạn xác nhận, tất cả các hàng thỏa mãn biểu thức của bạn (nghĩa là: tất cả các điểm thuộc về bản nhạc có track_idX) được chọn. Nếu sau đó bạn nhấp vào nút kính lúp, QGIS sẽ phóng to lựa chọn của bạn trong khung vẽ bản đồ. Các tính năng được chọn (điểm trong trường hợp của bạn) được tô sáng.


Những gì bạn có thể làm là áp dụng một phong cách dựa trên quy tắc. Như vậy, bạn có thể hiển thị một tuyến tàu riêng lẻ bằng cách sử dụng một biểu tượng hoặc điểm đánh dấu nhất định và 'không hiển thị' tất cả các điểm khác bằng cách cung cấp cho chúng một điểm đánh dấu 'không thể nhìn thấy'. Ảnh chụp màn hình (một phần từ Thuộc tính lớp) bên dưới giải thích cách thức hoạt động của nó:

  • Quy tắc 1: áp dụng điểm đánh dấu đã cho cho tất cả các điểm có giá trị là 24 cho track_id
  • Quy tắc 2: áp dụng điểm đánh dấu đã cho (một vòng tròn có màu trắng và viền trắng ...) cho tất cả các điểm không thỏa mãn track_idgiá trị 24

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

Trong thực tế, tất cả các điểm vẫn còn đó (làm cho chúng trắng sẽ không khiến việc kết xuất mất ít thời gian hơn) nhưng ít nhất đôi mắt của bạn có thể thư giãn!


Cảm ơn rất nhiều vì câu trả lời của bạn Kadeem! Tôi nhận thức được chức năng lựa chọn và điều này hoạt động tốt, tuy nhiên, tôi thực sự có 500.000 điểm trong một khu vực nhỏ và chỉ làm nổi bật các bản nhạc tôi đang tìm là không đủ, bản đồ vẫn còn quá đông đúc và khó hiểu. Bạn có biết nếu có khả năng chặn tất cả các điểm không được chọn hoặc một cái gì đó tương tự không?
Kristina

2
Tôi chỉnh sửa câu trả lời của tôi với một tùy chọn khác bên dưới dòng. Tôi đoán điều này sẽ giúp bạn.
kadéem

Kadeem, điều này rất đơn giản nhưng hiệu quả - ý tưởng tuyệt vời, cảm ơn rất nhiều!
Kristina
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.