Tính năng lọc trong các lớp khác của AtlasIS Atlas?


22

Tôi đang cố gắng sử dụng các công cụ AtlasIS Atlas để xây dựng 'phân tán' của sinh viên, tức là. trưng bày trường và học sinh theo học tại trường đó, cho 215 trường.

Lớp trường học là lớp bảo hiểm và được điều khiển bởi SCHNUMgiá trị (số trường). Điều này đang hoạt động tốt, đó là lái các trang chính xác.

Tuy nhiên, làm thế nào tôi có thể chỉ hiển thị các tính năng từ các lớp khác, trong trường hợp này là lớp điểm sinh viên, phù hợp với SCHNUMgiá trị tương ứng cho tính năng hiện tại trong lớp phủ sóng?

Tôi cũng muốn chuyển lớp bảo hiểm (trường học) thành 'ẩn' và sử dụng kỹ thuật tương tự để chỉ hiển thị trường hiện tại từ lớp trường trùng lặp.

Có một bài thuyết trình có sẵn ở đây đề cập đến việc sử dụng cài đặt quy tắc kết xuất lớp bằng cách sử dụng $atlasfeatureid, nhưng tôi không thể tìm ra cách thức hoạt động của nó.

Tôi cũng tìm thấy trang theo dõi lỗi này cho thấy điều này hoạt động, nhưng một lần nữa, tôi không thể làm cho nó hoạt động trên dữ liệu của mình:


Xin lỗi để gửi bài này như một câu trả lời mặc dù đó là một câu hỏi. Có bất kỳ video hướng dẫn cho đề nghị này? Tôi đã cố gắng làm theo và bằng cách nào đó luôn luôn bị lạc tại một số điểm. Có cùng một vấn đề.
JRamos

Câu trả lời:


41

Thật vậy, bạn cần sử dụng hệ thống ký hiệu dựa trên quy tắc để đạt được những gì bạn muốn.

Bạn cần tạo quy tắc cho những gì bạn muốn hiển thị và quy tắc ELSE cho tất cả những người khác.

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

Trong quy tắc ELSE, bỏ chọn hộp kiểm biểu tượng để làm cho nó vô hình.

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

Ẩn các tính năng khác khỏi lớp phủ sóng

Quy tắc chỉ hiển thị tính năng tập bản đồ hiện tại có thể như sau:

$id  =  @atlas_featureid 

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

lưu ý : Tôi tin rằng biến @atlas_featureid là cú pháp 2.12. Tôi nghĩ rằng trong 2.8.x bạn sẽ cần sử dụng một hàm gọi là $ atlas_featureid.

Ẩn các tính năng bên ngoài tính năng bản đồ hiện tại

Công thức vẫn giống như trước đây, một quy tắc khác để ẩn các tính năng, một quy tắc để hiển thị.

Đối với câu hỏi cụ thể của bạn, bạn dường như có một thuộc tính được chia sẻ được gọi là SCHNUM. Trong trường hợp đó, quy tắc có thể là:

"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')

trong trường hợp cụ thể của bạn:

"SCHNUM"  =  attribute( @atlas_feature , 'SCHNUM')

Lưu ý sự khác biệt giữa cả SCHNUM. Đầu tiên, trong dấu ngoặc kép, biểu thị giá trị của từng lớp hiện tại của trường lưu trữ mã trường. Thứ hai, trong các trích dẫn đơn, là một chuỗi với tên của lớp bảo hiểm lưu trữ mã trường.

Lưu ý : Một lần nữa tôi nghĩ biến @atlas_feature là một thứ "mới" và trong 2.8.x bạn sẽ cần sử dụng hàm $ atlas_feature

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

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.