Làm cách nào tôi chỉ có thể hiển thị một số lớp của lớp trong UMN-mapserver?


9

Tôi hình dung một lớp hình dạng trong máy chủ maps. Bây giờ tôi muốn thực hiện một số yêu cầu cho chỉ một số lớp của lớp này. Tôi muốn ví dụ một yêu cầu chỉ dành cho các lớp nước và sau đó chỉ cho các lớp gỗ. Tôi có thể nhận ra điều này với máy chủ maps không?

Câu trả lời:


7

Đây là một cách khác mà bạn có thể làm điều đó. Cách này liên quan đến việc sử dụng một lớp với các biểu thức trong mỗi lớp. Làm theo cách này sẽ tốn kém hơn một chút vì nó liên quan đến các biểu thức logic, nhưng bạn có thể không bao giờ nhận thấy sự khác biệt trừ khi bạn gặp phải tình huống tải trọng thực sự cao.

Mỗi lớp có một biểu thức hai phần. Cả hai phần của biểu thức cần phải đúng với các tính năng được vẽ. Phần đầu tiên của biểu thức chọn các tính năng sẽ thuộc lớp đó dựa trên một thuộc tính trong shapefile của bạn. Phần thứ hai của biểu thức đánh giá giá trị của một biến được truyền qua url. Không quan trọng bạn đặt tên biến trong url của mình là gì (không sử dụng bất kỳ từ dành riêng nào như 'lớp'), nó chỉ phải khớp với tên biến trong biểu thức của bạn.

Dưới đây là một số lớp mẫu:

LAYER
  NAME "watersheds"
  STATUS DEFAULT
  DATA 'majclip'
  TYPE POLYGON
    CLASS
       NAME "water"
       EXPRESSION ([MAJOR] < 42 AND '%wanted%' = 'water')
       STYLE
          COLOR 0 0 255
       END
    END
    CLASS
       NAME "wood"
       EXPRESSION ([MAJOR] >= 42 AND '%wanted%' = 'wood')
       STYLE
          COLOR 0 255 0
       END
    END
END

Để chỉ vẽ các tính năng nước, bạn sẽ sử dụng một yêu cầu URL như thế này: http: //localhost/cgi-bin/mapserv.exe? Map = / ms4w / apps / mymapfile.map & mode = map & Want = wood

Vì đây là cách hợp lệ thứ ba để thực hiện mục tiêu của bạn, bạn thực sự muốn nghĩ về mục tiêu của mình là gì. Nếu dữ liệu của bạn thay đổi thường xuyên, bạn có thể muốn đi với tùy chọn này. Nếu dữ liệu của bạn không thay đổi thường xuyên, cá nhân tôi sẽ đi bằng hai lớp. Tôi thậm chí có thể chia shapefile thành nhiều shapefile theo loại sử dụng đất nếu hiệu suất được cải thiện. (Có thể không, bộ lọc lớp khá hiệu quả). Với lập bản đồ Web, bạn càng tối ưu hóa trước dữ liệu của mình thì càng tốt.


7

Trong trường hợp của bạn, bạn nên có hai lớp, một lớp cho gỗ và một lớp cho nước. Bạn có thể có hai lớp bằng cách sử dụng cùng một shapefile ..

Sau đó, bạn có thể chọn các lớp để trực quan hóa trong yêu cầu của tham số LAYERS. Các lớp chỉ đại diện cho các phần khác nhau của dữ liệu (ví dụ: cách dữ liệu trong các lớp đó sẽ được hiển thị).


4

Nếu bạn thực sự, thực sự cần tất cả chúng trong một lớp, bạn có thể sử dụng Kiểu được đặt tên để đạt được điều này. Xem ở đây để biết thêm chi tiết. Tuy nhiên, đề xuất nhiều lớp của Peter là một cách tiếp cận đơn giản hơn nhiều.

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.