Tạo kiểu cho FeatureView

Kiểu của các tính năng trong thành phần FeatureView được chỉ định bằng các quy tắc được xác định trong đối tượng JavaScript. Bạn có thể đặt kiểu trong quá trình xác định ban đầu của FeatureViewLayer hoặc bất cứ lúc nào sau đó. Hệ thống định kiểu cho phép bạn đặt các quy tắc kiểu chung áp dụng cho các nhóm tính năng lớn, cũng như các quy tắc cụ thể hơn cho các tính năng cụ thể. Bạn có thể xác định kiểu đối tượng bằng giá trị không đổi hoặc dựa trên dữ liệu, dựa trên các đặc điểm của đối tượng.

Đối tượng kiểu

Cấu trúc cơ bản của đối tượng kiểu được hiển thị bên dưới. Có hai loại quy tắc: quy tắc chung và quy tắc cụ thể. Quy tắc chung ảnh hưởng đến tất cả tính năng trong một thành phần FeatureView, còn quy tắc cụ thể ảnh hưởng đến một tập hợp con tính năng.

{
  // Broad style rules.
  opacity: ,
  polygonFillColor: ,

  // Specific style rules.
  rules: [
    {  },
    {  }
  ]
};

Quy tắc chung

Để áp dụng các thuộc tính kiểu cho tất cả các đối tượng (hoặc các đối tượng thuộc một loại hình học cụ thể), hãy chỉ định các thuộc tính kiểu ở cấp cao nhất trong đối tượng kiểu.

{
  opacity: 0.5,
  pointShape: 'triangle',
  lineWidth: 10,
  polygonFillColor: 'green'
};

Quy tắc cụ thể

Để áp dụng các thuộc tính kiểu cho một nhóm nhỏ các tính năng, hãy sử dụng trường rules. Trường rules chấp nhận danh sách đối tượng JavaScript, mỗi đối tượng có một filter chọn các tính năng theo điều kiện do đối tượng ee.Filter xác định, theo sau là một loạt thuộc tính kiểu. Trong ví dụ bên dưới, có một quy tắc chỉ đặt polygonStrokeWidthpolygonFillColor nếu thuộc tính "REP_AREA" nhỏ hơn 100. Các quy tắc cụ thể sẽ ghi đè các thuộc tính kiểu của quy tắc chung và các quy tắc gần cuối danh sách rules sẽ ghi đè các quy tắc gần đầu danh sách (các quy tắc cụ thể được đánh giá từ đầu đến cuối).

{
  rules: [
    {
      filter: ee.Filter.lt('REP_AREA', 100),
      polygonStrokeWidth: 0.5,
      polygonFillColor: 'blue'
    },
    {  }  // Optionally include additional rules.
  ]
};

Đặt kiểu

Bạn có thể đặt kiểu tính năng khi khai báo FeatureViewLayer hoặc bất cứ lúc nào sau đó.

Nội dung khai báo FeatureViewLayer

Để đặt các tham số hình ảnh khi khai báo FeatureViewLayer, hãy sử dụng tham số visParams.

var visParams = {
  opacity: 0.5,
  lineWidth: 10,
  polygonFillColor: 'purple'
};

var layer = ui.Map.FeatureViewLayer({
  assetId: 'WCMC/WDPA/current/polygons_FeatureView',
  visParams: visParams
});

Map.add(layer);

FeatureViewLayer hiện tại

Để đặt các tham số trực quan cho một FeatureViewLayer hiện có, hãy sử dụng hàm setVisParams. Thuộc tính này sẽ thay thế mọi quy tắc kiểu đã chỉ định trước đó; các thuộc tính chưa chỉ định sẽ được đặt thành mặc định.

var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);

layer.setVisParams({
  opacity: 0.5,
  lineWidth: 10,
  polygonFillColor: 'purple'
});

Biểu tượng học

Đối với mỗi thuộc tính kiểu, bạn có thể chỉ định quy tắc kiểu không đổi hoặc quy tắc kiểu dựa trên dữ liệu. Tuỳ chọn dựa trên dữ liệu sử dụng các giá trị thuộc tính của đối tượng để xác định biểu tượng, có thể là dạng phân loại hoặc nội suy. Để biết danh sách đầy đủ các thuộc tính kiểu, hãy xem bảng thuộc tính kiểu.

Hằng số

Quy tắc kiểu không đổi bao gồm một thuộc tính kiểu cần đặt và giá trị của thuộc tính đó. Ví dụ sau đây đặt màu tô đa giác thành màu xanh dương.

var visParams = {
  polygonFillColor: 'blue'
};

Thống kê dạng danh mục

Quy tắc kiểu theo danh mục bao gồm một thuộc tính kiểu để đặt và một đối tượng JavaScript có ba thuộc tính:

  • property – tên thuộc tính tính năng có giá trị sẽ ảnh hưởng đến kiểu.
  • categories – danh sách các danh sách liên kết các giá trị thuộc tính tính năng với ký hiệu thuộc tính kiểu. Mỗi danh mục bao gồm một giá trị thuộc tính, theo sau là một giá trị ký hiệu để áp dụng. Giá trị thuộc tính xác định một danh mục phải là một chuỗi.
  • defaultValue – ký hiệu mặc định để áp dụng cho các đối tượng có giá trị thuộc tính không được xác định trong categories. Nếu giá trị này là rỗng/không xác định, chế độ cài đặt kiểu mặc định sẽ được áp dụng.

Ví dụ: đối tượng sau đây đặt thuộc tính kiểu color dựa trên thuộc tính đối tượng "MARINE". Các tính năng trong danh mục "MARINE" "0" được đặt thành màu tím, "1" thành màu xanh lục, "2" thành màu xanh dương và mọi danh mục khác thành màu trắng.

var visParams = {
  color: {
    property: 'MARINE',
    categories: [
      ['0', 'purple'],
      ['1', 'green'],
      ['2', 'blue']
    ],
    defaultValue: 'white'
  }
};

Nội suy

Quy tắc kiểu nội suy bao gồm một thuộc tính kiểu để đặt và một đối tượng JavaScript có tối đa 5 thuộc tính:

  • property – tên thuộc tính tính năng có giá trị sẽ ảnh hưởng đến kiểu.
  • mode – chế độ nội suy, 'linear' hoặc 'interval'.
  • palette – danh sách màu sắc, độ mờ hoặc chiều rộng để nội suy giá trị thuộc tính đầu vào giữa các giá trị đó. Định dạng phụ thuộc vào mode, hãy xem các phần Tuyến tínhKhoảng thời gian để biết thêm chi tiết.

Chỉ áp dụng cho chế độ 'linear'

  • min – giá trị thuộc tính để liên kết với phần tử đầu tiên trong danh sách palette.
  • max – giá trị thuộc tính để liên kết với phần tử cuối cùng trong danh sách palette.

Tuyến tính

Chế độ nội suy tuyến tính đặt thuộc tính kiểu đối tượng bằng cách ánh xạ tuyến tính các giá trị đầu vào trong phạm vi min đến max giữa danh sách các giá trị ký hiệu được xác định trong thuộc tính palette. Các giá trị đầu vào được cố định trong phạm vi do minmax đặt.

Ví dụ: đối tượng sau đây đặt thuộc tính kiểu color dựa trên thuộc tính đối tượng "REP_AREA". Thuộc tính palette là một danh sách màu sắc cho biết rằng các giá trị đầu vào từ min đến max phải được phân loại theo tuyến tính từ màu vàng đến màu đỏ đến màu xanh dương. Giá trị từ 1 đến 500 được nội suy giữa màu vàng và màu đỏ, còn giá trị từ 500 đến 1000 được nội suy giữa màu đỏ và màu xanh dương.

var visParams = {
  color: {
    property: 'REP_AREA',
    mode: 'linear',
    palette: ['yellow', 'red', 'blue'],
    min: 1,
    max: 1000
  }
};

Khoảng thời gian

Chế độ nội suy khoảng đặt thuộc tính kiểu đối tượng bằng cách liên kết các giá trị đầu vào với các điểm ngắt lớp, sau đó áp dụng ký hiệu dành riêng cho lớp. Giá trị đầu vào từ thuộc tính đối tượng được chọn được chỉ định cho giá trị ngắt lớp gần nhất bằng cách làm tròn xuống. Thuộc tính palette được định dạng dưới dạng danh sách các danh sách, trong đó mỗi danh sách bên trong chứa một giá trị ngắt lớp, theo sau là một giá trị thuộc tính kiểu. Các tính năng có giá trị thuộc tính nhỏ hơn giá trị ngắt lớp tối thiểu sẽ duy trì chế độ cài đặt thuộc tính kiểu mặc định.

Trong ví dụ sau, độ mờ của tính năng tô được đặt theo các lớp được phân cấp của thuộc tính "REP_AREA". Định nghĩa lớp và ký hiệu kiểu được cung cấp trong thuộc tính palette dưới dạng danh sách các danh sách. Điều này cho biết sẽ có 4 lớp với các điểm ngắt ở giá trị 0, 80, 2000 và 5000, với độ mờ của các tính năng tương ứng là 0,5, 0,35, 0,22 và 0,15. Nói cách khác, các đối tượng có giá trị "REP_AREA" trong khoảng $ 0 \le x < 80 $ sẽ có độ mờ tô là 0,5, các giá trị trong khoảng $ 80 \le x < 2000 $ sẽ có độ mờ tô là 0,35, v.v.

var visParams = {
  fillOpacity: {
    property: 'REP_AREA',
    mode: 'interval',
    palette: [
      [0, 0.5],
      [80, 0.35],
      [2000, 0.22],
      [5000, 0.15]
    ]
  }
};

Tất cả thuộc tính kiểu

Dưới đây là tất cả các thuộc tính kiểu mà bạn có thể chỉ định trong đối tượng kiểu. Việc đặt thuộc tính kiểu cho các loại hình học cụ thể sẽ ghi đè các thuộc tính kiểu tương ứng được đặt cho "Tất cả hình học" (ví dụ: việc đặt polygonFillColor sẽ ghi đè giá trị được đặt trong fillColor).

Thuộc tính Loại Mô tả Hỗ trợ Quy tắc nội suy
Tất cả hình học
isVisible Boolean Thiết lập xem tính năng có hiển thị hay không. Không
color String Đặt màu tô/nét vẽ cho tất cả các loại hình học. Phải là giá trị hex hoặc màu CSS3.
opacity Double Đặt độ mờ của màu tô/nét vẽ cho tất cả các loại hình học. Phải là số thực có độ chính xác kép từ 0 đến 1.
width Double Đặt chiều rộng nét cho tất cả các loại hình học.
fillColor String Đặt màu tô cho tất cả các loại hình học. Phải là giá trị hex hoặc màu CSS3.
Hình học điểm
pointShape String Đặt hình dạng của hình học điểm. Hỗ trợ các hình dạng giống như ee.FeatureCollection.style (vòng tròn, hình vuông, hình kim cương, hình chữ thập, dấu cộng, hình năm cánh, hình lục giác, hình tam giác, triangle_up, triangle_down, triangle_left, triangle_right, hình ngũ giác, hình lục giác, star5, star6). Không
pointSize Double Đặt chiều rộng của hình học điểm (tính bằng px).
pointFillColor String Đặt màu nền cho hình học điểm. Phải là giá trị hex hoặc màu CSS3.
pointFillOpacity Double Đặt độ mờ màu tô cho hình học điểm. Phải là một số thực kép từ 0 đến 1.
Hình học đường
lineType String Đặt loại đường kẻ. Hỗ trợ các loại tương tự như ee.FeatureCollection.style (đậm, nét đứt, chấm). Không
lineWidth Double Đặt chiều rộng đường kẻ (tính bằng pixel).
lineColor String Đặt màu cho hình học đường thẳng. Phải là giá trị hex hoặc màu CSS3.
lineOpacity Double Đặt độ mờ cho hình học đường. Phải là số thực có độ chính xác kép từ 0 đến 1.
Hình học đa giác
polygonStrokeWidth Double Đặt chiều rộng nét của đa giác (tính bằng pixel).
polygonStrokeType String Đặt loại đường cho đa giác. Hỗ trợ các loại tương tự như ee.FeatureCollection.style (đậm, nét đứt, chấm). Không
polygonStrokeColor String Đặt màu nét vẽ cho hình học đa giác. Phải là giá trị hex hoặc màu CSS3.
polygonStrokeOpacity Double Đặt độ mờ nét vẽ cho hình học đa giác. Phải là một số thực gấp đôi nằm trong khoảng từ 0 đến 1.
polygonFillColor String Đặt màu nền cho hình học đa giác. Phải là giá trị hex hoặc màu CSS3.
polygonFillOpacity Double Đặt độ mờ màu tô cho hình học đa giác. Phải là một số thực gấp đôi nằm trong khoảng từ 0 đến 1.