Tối ưu hoá FeatureView

Khi xuất FeatureCollection dưới dạng tài sản FeatureView, bạn có thể đặt các thông số ưu tiên các tính năng được kết xuất ở một mức thu phóng nhất định (giảm độ dày) và cách sắp xếp các tính năng chồng chéo (thứ tự z). Các chế độ cài đặt này ảnh hưởng đến tốc độ và đặc điểm hiển thị của đối tượng FeatureView. Các phần sau đây mô tả các thông số tối ưu hoá và minh hoạ tác động của các thông số đó bằng cách sử dụng sơ đồ khái niệm, trong đó các ô bản đồ được phân định bằng các đường nét đứt, các đối tượng hiển thị là đa giác có đường nét liền và các đối tượng bị loại bỏ (giảm độ dày) là đa giác có đường nét đứt và không có màu tô.

Khối mã sau đây là ví dụ về một tệp xuất FeatureCollection sang FeatureView làm nổi bật các thông số tối ưu hoá được mô tả trong trang này.

Export.table.toFeatureView({
  collection: fooFc,
  assetId: 'foo-featureview-demo',
  description: 'foo-featureview-demo',
  maxFeaturesPerTile: 1500,
  thinningStrategy: 'HIGHER_DENSITY',
  thinningRanking: ['my-property DESC'],
  zOrderRanking: ['my-property DESC']
});

Số tính năng tối đa trên mỗi thẻ thông tin

Tham số số lượng tối đa đối tượng trên mỗi thẻ thông tin (maxFeaturesPerTile) xác định số lượng tối đa đối tượng sẽ được kết xuất trên một thẻ thông tin trên bản đồ. Giá trị này là giới hạn trên và có thể thấp hơn đáng kể tuỳ thuộc vào chiến lược làm thưa. Bạn có thể đặt giá trị này thành bất kỳ giá trị nào từ 1 đến 2000. Giá trị cao hơn cho thấy nhiều tính năng hơn trên mỗi thẻ thông tin, nhưng các thẻ thông tin sẽ mất nhiều thời gian hơn để tải.

Lưu ý trong bảng sau đây rằng khi giá trị thông số maxFeaturesPerTile giảm, số lượng đối tượng giao nhau với mỗi thẻ thông tin trên bản đồ cũng giảm theo. Thẻ thông tin có thể có ít hơn số lượng tối đa, nhưng không được nhiều hơn.

Tất cả tính năng (để tham khảo)

maxFeaturesPerTile: 5

Hiển thị không quá 5 tính năng trên mỗi thẻ thông tin.

maxFeaturesPerTile: 2

Không hiển thị nhiều hơn 2 tính năng trên mỗi thẻ thông tin.

Xếp hạng làm mỏng

Thông số thứ hạng làm thưa (thinningRanking) kiểm soát cách dữ liệu được ưu tiên làm thưa dựa trên loại hình học, kích thước đặc điểm và giá trị thuộc tính đặc điểm. Phương thức này chấp nhận một bộ quy tắc thông báo cho thuật toán làm thưa về các đặc điểm cần làm thưa trước các đặc điểm khác khi đạt đến maxFeaturesPerTile. Mỗi quy tắc bao gồm một thuộc tính tính năng, theo sau là hướng sắp xếp (tăng dần/ASC hoặc giảm dần/DESC); có thể có một hoặc nhiều quy tắc. Ngoài các thuộc tính tính năng truyền thống, có hai thuộc tính đặc biệt có thể được dùng để ưu tiên làm thưa: .geometryType.minZoomLevel.

  • .geometryType – mô tả các đối tượng dưới dạng điểm, đường hoặc đa giác. Các loại hình học này được định lượng tương ứng là nhỏ, trung bình và lớn để phục vụ cho việc sắp xếp.
  • .minZoomLevel – mức thu phóng bản đồ thấp nhất mà một đối tượng có thể kết xuất thành thẻ thông tin. Các cấp độ thu phóng thấp hơn giá trị này sẽ không hiển thị tính năng, còn các cấp độ thu phóng lớn hơn hoặc bằng giá trị này có thể hiển thị tính năng. Hãy nhớ rằng mức thu phóng thấp đại diện cho một khu vực địa lý lớn hơn trên mỗi thẻ thông tin trên bản đồ so với mức thu phóng cao hơn. Các đối tượng điểm được chỉ định giá trị 0 (hiển thị ở tất cả các mức thu phóng). Hình học đường và đa giác được gán giá trị dựa trên giới hạn (đường) hoặc diện tích (đa giác): các đối tượng lớn có giá trị .minZoomLevel thấp hơn so với các đối tượng nhỏ hơn.

Bạn có thể cung cấp quy tắc làm mỏng thứ hạng dưới dạng một chuỗi hoặc danh sách chuỗi, trong đó tên thuộc tính và hướng sắp xếp mong muốn được phân tách bằng dấu cách:

// String input format for setting thinning ranking based on 3 rules.
'my-property DESC, .geometryType ASC, .minZoomLevel ASC'

// List of strings input format for setting thinning ranking based on 3 rules.
['my-property DESC', '.geometryType ASC', '.minZoomLevel ASC']

Các quy tắc ở trên hướng dẫn thuật toán làm mỏng ưu tiên các đối tượng có thuộc tính "my-property" lớn hơn (trước tiên là các đối tượng có giá trị "my-property" nhỏ hơn), ưu tiên các đối tượng có loại hình học nhỏ hơn (ví dụ: làm mỏng đa giác trước đường và đường trước điểm) và ưu tiên các đối tượng có mức thu phóng tối thiểu nhỏ hơn (điểm trên đa giác lớn hơn đa giác nhỏ hơn).

Bảng sau đây minh hoạ cách thay đổi quy tắc thinningRanking cho thuộc tính size ảnh hưởng đến các tính năng được vẽ. Tổng số đối tượng trên mỗi ô ("Tất cả đối tượng") lớn hơn 5, vì vậy, tính năng làm thưa sẽ được áp dụng để giới hạn số lượng đối tượng được vẽ (cột thinningRanking: 5). Trong hàng đầu tiên, các đặc điểm được sắp xếp theo size từ lớn nhất đến nhỏ nhất, nghĩa là các đặc điểm lớn hơn sẽ được ưu tiên hơn các đặc điểm nhỏ hơn (các đặc điểm được vẽ theo thứ tự giảm dần theo kích thước cho đến khi đạt đến maxFeaturesPerTile). Trong hàng thứ hai, các đặc điểm được sắp xếp theo thứ tự tăng dần về kích thước, vì vậy, các đặc điểm nhỏ nhất được vẽ trước, theo thứ tự kích thước, cho đến khi đạt đến maxFeaturesPerTile.

thinningRanking Tất cả tính năng (để tham khảo) maxFeaturesPerTile: 5

'size DESC'

Ưu tiên các tính năng có size lớn hơn (trước tiên, hãy loại bỏ các tính năng có size nhỏ hơn).

'size ASC'

Ưu tiên các tính năng có size nhỏ hơn (trước tiên, hãy loại bỏ các tính năng có size lớn hơn)

Chiến lược làm mỏng

Tham số chiến lược làm thưa (thinningStrategy) được sử dụng cùng với thứ hạng làm thưa (thinningRanking) để làm thưa dữ liệu tại thời điểm xuất nhằm cải thiện hiệu suất kết xuất. Có hai chiến lược được hỗ trợ: HIGHER_DENSITYGLOBALLY_CONSISTENT. Khi giảm mật độ ở một cấp độ thu phóng cụ thể, chiến lược giảm mật độ cao hơn có nghĩa là mỗi thẻ thông tin có thể tiến gần nhất có thể đến giới hạn maxFeaturesPerTile mà không cần quan tâm đến thứ hạng của các tính năng trong các thẻ thông tin khác. Chiến lược làm thưa nhất quán trên toàn cầu có nghĩa là nếu một tính năng bị xoá bằng cách làm thưa khỏi bất kỳ thẻ thông tin nào, thì tất cả các tính năng có thuộc tính làm thưa bằng hoặc thấp hơn sẽ bị xoá khỏi tất cả thẻ thông tin, bất kể thẻ thông tin có yêu cầu làm thưa hay không (vượt quá giới hạn maxFeaturesPerTile). Sử dụng chiến lược HIGHER_DENSITY để tối ưu hoá mật độ tính năng và sử dụng chiến lược GLOBALLY_CONSISTENT để tối ưu hoá việc trình bày nhất quán thứ hạng tính năng giữa các thẻ thông tin.

Bảng sau đây minh hoạ mức độ ảnh hưởng của việc thay đổi thinningStrategy đối với việc làm mỏng. Trong ví dụ này, dữ liệu được làm mỏng bằng cách sử dụng hình dạng/màu của các điểm. Vòng tròn màu xanh dương, hình vuông màu xanh lục và tam giác màu đỏ có thứ hạng làm mỏng tương ứng từ tốt nhất đến tệ nhất. Đối với mỗi thinningStrategy (HIGHER_DENSITYGLOBALLY_CONSISTENT), có 3 giá trị khác nhau cho maxFeaturesPerTile được chỉ định: một số đủ lớn để hiển thị tất cả các tính năng, 10 tính năng và 9 tính năng.

Với HIGHER_DENSITY và 10 maxFeaturesPerTile, 6 tam giác đỏ (ưu tiên thấp nhất trong thứ hạng làm mỏng) sẽ bị loại bỏ khỏi thẻ thông tin ở trên cùng bên trái và 1 tam giác đỏ sẽ bị loại bỏ khỏi thẻ thông tin ở dưới cùng bên trái. Với HIGHER_DENSITY và 9 maxFeaturesPerTile, 7 tam giác đỏ sẽ được làm mỏng ra khỏi thẻ thông tin ở trên cùng bên trái, còn tam giác đỏ và hình vuông xanh lục sẽ được làm mỏng ra khỏi thẻ thông tin ở dưới cùng bên trái. Trong các ví dụ này, mỗi thẻ thông tin được làm thưa độc lập mà không xem xét đến thứ hạng làm thưa của các đặc điểm trong các thẻ thông tin lân cận. Tuỳ thuộc vào đặc điểm của dữ liệu, chiến lược làm thưa này có thể dẫn đến việc các ô bản đồ liền kề xuất hiện khác biệt rõ ràng với nhau, nhưng tối đa hoá số lượng đối tượng được vẽ.

Hãy nhớ rằng việc làm mỏng GLOBALLY_CONSISTENT có nghĩa là nếu một đặc điểm bị xoá bằng cách làm mỏng khỏi bất kỳ thẻ thông tin nào, thì tất cả các đặc điểm khác có thinningRank bằng hoặc kém hơn cũng sẽ bị xoá. Khi đặt maxFeaturesPerTile thành 10, hình tam giác màu đỏ sẽ không xuất hiện trên bất kỳ thẻ thông tin nào vì hình tam giác màu đỏ bị làm mỏng trong thẻ thông tin trên cùng bên trái và dưới cùng bên trái. Khi maxFeaturesPerTile được đặt thành 9, các ô màu xanh lục cũng không xuất hiện trên bất kỳ ô nào vì ô màu xanh lục bị làm mỏng trong ô dưới cùng bên trái. Chiến lược làm mỏng này ít có khả năng tạo ra giao diện thẻ thông tin riêng biệt như chiến lược HIGHER_DENSITY, nhưng có khả năng làm mỏng thẻ thông tin cho một số tính năng thấp hơn nhiều so với giới hạn maxFeaturesPerTile.

thinningStrategy Tất cả tính năng (để tham khảo) maxFeaturesPerTile: 10 maxFeaturesPerTile: 9

'HIGHER_DENSITY'

Giảm độ thưa mỏng.

Duy trì mật độ đặc điểm cao thông qua việc làm mỏng trong thẻ thông tin.

'GLOBALLY_CONSISTENT'

Giảm bớt nhiều hơn.

Duy trì thứ hạng làm mỏng tối thiểu nhất quán trên toàn cầu thông qua việc làm mỏng giữa các ô.

Xếp hạng theo thứ tự Z

Tham số thứ hạng thứ tự z (zOrderRanking) kiểm soát thứ tự của các tính năng trùng lặp. Phương thức này chấp nhận một bộ quy tắc xác định tính năng nào sẽ xuất hiện bên dưới/bên trên các tính năng khác khi chúng trùng lặp. Logic và định dạng quy tắc để đặt thứ tự tính năng giống với điều chỉnh thứ hạng, vui lòng xem phần đó để biết thêm chi tiết.

Bạn có thể cung cấp quy tắc xếp hạng thứ tự Z dưới dạng một chuỗi hoặc danh sách các chuỗi, trong đó tên thuộc tính và hướng sắp xếp mong muốn được phân tách bằng dấu cách:

// String input format for setting z-order ranking based on 3 rules.
'my-property DESC, .geometryType ASC, .minZoomLevel ASC'

// List of strings input format for setting z-order ranking based on 3 rules.
['my-property DESC', '.geometryType ASC', '.minZoomLevel ASC']

Các quy tắc ở trên chỉ định rằng các đối tượng có giá trị "my-property" lớn hơn sẽ xuất hiện trong các đối tượng có giá trị nhỏ hơn, các đối tượng có loại hình học nhỏ hơn sẽ xuất hiện trong các đối tượng có loại hình học lớn hơn (ví dụ: các điểm trong đường và đường trong đa giác) và các đối tượng có mức thu phóng tối thiểu nhỏ hơn (đối tượng lớn hơn) sẽ xuất hiện trong các đối tượng có mức thu phóng tối thiểu lớn hơn (đối tượng nhỏ hơn).

Bảng sau đây minh hoạ cách thay đổi quy tắc zOrderRanking cho thuộc tính "size" (kích thước) ảnh hưởng đến việc tính năng nào xuất hiện trước các tính năng khác khi chúng chồng chéo nhau. Trong hàng đầu tiên, các đặc điểm được sắp xếp theo kích thước theo thứ tự giảm dần, nghĩa là các đặc điểm có kích thước lớn hơn sẽ xuất hiện bên dưới các đặc điểm có kích thước nhỏ hơn (các đặc điểm lớn hơn được vẽ trước). Ngược lại, trong hàng thứ hai, các đặc điểm được sắp xếp theo kích thước theo thứ tự tăng dần, nghĩa là các đặc điểm có kích thước nhỏ hơn sẽ xuất hiện bên dưới các đặc điểm có kích thước lớn hơn (các đặc điểm nhỏ hơn được vẽ trước).

zOrderRanking: 'size DESC'

Các tính năng có size nhỏ hơn sẽ xuất hiện phía trên các tính năng có size lớn hơn.

zOrderRanking: 'size ASC'

Các tính năng có size lớn hơn sẽ xuất hiện phía trên các tính năng có size nhỏ hơn.