Pengoptimalan FeatureView

Saat mengekspor FeatureCollection sebagai aset FeatureView, Anda dapat menetapkan parameter yang memprioritaskan fitur mana yang dirender pada tingkat zoom tertentu (penipisan) dan cara fitur yang tumpang-tindih diurutkan (urutan z). Setelan ini memengaruhi kecepatan dan karakteristik tampilan objek FeatureView. Bagian berikut menjelaskan parameter pengoptimalan dan menunjukkan dampaknya menggunakan diagram konseptual dengan ubin peta yang dibatasi oleh garis putus-putus, fitur yang terlihat adalah poligon garis solid, dan fitur yang dihapus (diperkecil) adalah poligon dengan garis putus-putus dan tidak ada isi.

Blok kode berikut adalah contoh ekspor FeatureCollection ke FeatureView yang menyoroti parameter pengoptimalan yang dijelaskan di halaman ini.

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']
});

Fitur maksimum per kartu

Parameter fitur maksimum per ubin (maxFeaturesPerTile) menentukan jumlah maksimum fitur yang akan dirender pada satu ubin peta. Nilai ini adalah batas atas, dan mungkin jauh lebih rendah bergantung pada strategi penyingkatan. Nilai ini dapat ditetapkan ke apa pun antara 1 dan 2000. Nilai yang lebih tinggi akan menampilkan lebih banyak fitur per kartu, tetapi kartu memerlukan waktu yang lebih lama untuk dimuat.

Perhatikan dalam tabel berikut bahwa saat nilai parameter maxFeaturesPerTile menurun, jumlah fitur yang berpotongan dengan setiap ubin peta juga akan menurun. Kartu mungkin memiliki lebih sedikit dari maksimum, tetapi tidak lebih.

Semua fitur (untuk referensi)

maxFeaturesPerTile: 5

Menampilkan tidak lebih dari 5 fitur per kartu.

maxFeaturesPerTile: 2

Menampilkan tidak lebih dari 2 fitur per kartu.

Peringkat penipisan

Parameter peringkat pengecilan (thinningRanking) mengontrol cara data diprioritaskan untuk pengecilan berdasarkan jenis geometri, ukuran fitur, dan nilai properti fitur. Fungsi ini menerima serangkaian aturan yang memberi tahu algoritma pengecilan tentang fitur mana yang akan dihilangkan sebelum fitur lainnya saat maxFeaturesPerTile tercapai. Setiap aturan menyertakan properti fitur, diikuti dengan arah pengurutan (menurut urutan menaik/ASC atau menurun/DESC); dapat ada satu atau beberapa aturan. Selain properti fitur tradisional, ada dua properti khusus yang dapat digunakan untuk memprioritaskan pengecilan: .geometryType dan .minZoomLevel.

  • .geometryType – mencirikan fitur sebagai titik, garis, atau poligon. Jenis geometri ini masing-masing dikuantifikasi sebagai kecil, sedang, dan besar untuk tujuan pengurutan.
  • .minZoomLevel – tingkat zoom peta terendah tempat fitur dapat dirender ke ubin. Tingkat zoom di bawah nilai ini tidak akan menampilkan fitur, tingkat zoom yang lebih besar dari atau sama dengan nilai ini dapat menampilkan fitur. Ingat bahwa tingkat zoom rendah mewakili wilayah geografis yang lebih besar per ubin peta daripada tingkat zoom yang lebih tinggi. Fitur titik diberi nilai 0 (terlihat di semua tingkat zoom). Geometri garis dan poligon diberi nilai berdasarkan batas (garis) atau area (poligon): fitur besar memiliki nilai .minZoomLevel yang lebih rendah daripada fitur yang lebih kecil.

Aturan pengurutan yang dipadatkan dapat diberikan sebagai string atau daftar string dengan nama properti dan arah pengurutan yang diinginkan dipisahkan oleh spasi:

// 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']

Aturan di atas mengarahkan algoritma pengecilan untuk memprioritaskan fitur dengan atribut "my-property" yang lebih besar (mengecilkan fitur dengan nilai "my-property" yang lebih kecil terlebih dahulu), memprioritaskan fitur dengan jenis geometri yang lebih kecil (misalnya, mengecilkan poligon sebelum garis dan garis sebelum titik), dan memprioritaskan fitur dengan tingkat zoom minimum yang lebih kecil (titik di atas poligon besar di atas poligon yang lebih kecil).

Tabel berikut mengilustrasikan pengaruh perubahan aturan thinningRanking untuk properti size terhadap fitur yang digambar. Jumlah total fitur per ubin ("Semua fitur" kolom) lebih besar dari 5, sehingga thinning diterapkan untuk membatasi fitur yang digambar (kolom thinningRanking: 5). Di baris pertama, fitur diurutkan menurut size dari terbesar ke terkecil, yang berarti fitur yang lebih besar lebih diprioritaskan daripada fitur yang lebih kecil (fitur digambar dalam urutan menurun menurut ukuran hingga maxFeaturesPerTile tercapai). Di baris kedua, fitur diurutkan berdasarkan ukuran menaik, sehingga fitur terkecil digambar terlebih dahulu, sesuai urutan ukuran, hingga maxFeaturesPerTile tercapai.

thinningRanking Semua fitur (untuk referensi) maxFeaturesPerTile: 5

'size DESC'

Prioritaskan fitur dengan size yang lebih besar (kurangi fitur dengan size yang lebih kecil terlebih dahulu).

'size ASC'

Prioritaskan fitur dengan size yang lebih kecil (kurangi fitur dengan size yang lebih besar terlebih dahulu)

Strategi penipisan

Parameter strategi pengecilan (thinningStrategy) digunakan bersama peringkat pengecilan (thinningRanking) untuk mengurangi data pada waktu ekspor guna meningkatkan performa rendering. Ada dua strategi yang didukung: HIGHER_DENSITY dan GLOBALLY_CONSISTENT. Saat melakukan penghapusan pada tingkat zoom tertentu, strategi penghapusan kepadatan yang lebih tinggi berarti setiap ubin dapat mendekati batas maxFeaturesPerTile sebanyak mungkin tanpa mempertimbangkan peringkat fitur di ubin lain. Strategi thinning yang konsisten secara global berarti bahwa jika fitur dihapus dengan thinning dari kartu mana pun, semua fitur dengan peringkat thinning yang sama atau lebih rendah akan dihapus dari semua kartu, terlepas dari apakah kartu memerlukan thinning (melebihi batas maxFeaturesPerTile atau tidak). Gunakan strategi HIGHER_DENSITY untuk mengoptimalkan kepadatan fitur dan gunakan strategi GLOBALLY_CONSISTENT untuk mengoptimalkan representasi antar-kartu yang konsisten dari peringkat fitur.

Tabel berikut menunjukkan pengaruh perubahan thinningStrategy terhadap pengurangan. Dalam contoh ini, data ditipiskan menggunakan bentuk/warna titik. Lingkaran biru, kotak hijau, dan segitiga merah memiliki peringkat pengecilan masing-masing dari terbaik ke terburuk. Untuk setiap thinningStrategy (HIGHER_DENSITY dan GLOBALLY_CONSISTENT), ada tiga nilai berbeda untuk maxFeaturesPerTile yang ditentukan: angka yang cukup besar untuk menampilkan semua fitur, 10 fitur, dan 9 fitur.

Dengan HIGHER_DENSITY dan 10 maxFeaturesPerTile, 6 segitiga merah (prioritas terendah dalam peringkat pengecilan) dihilangkan dari kartu kiri atas, dan 1 segitiga merah dihilangkan dari kartu kiri bawah. Dengan HIGHER_DENSITY dan 9 maxFeaturesPerTile, 7 segitiga merah ditipiskan dari kartu kiri atas, dan segitiga merah serta persegi hijau ditipiskan dari kartu kiri bawah. Dalam contoh ini, setiap ubin ditipiskan secara independen, tanpa mempertimbangkan tingkat fitur yang ditipiskan di ubin tetangga. Bergantung pada karakteristik data, strategi pengecilan ini dapat menyebabkan ubin peta yang berdekatan tampak sangat berbeda satu sama lain, tetapi memaksimalkan jumlah fitur yang digambar.

Ingat bahwa thinning GLOBALLY_CONSISTENT berarti jika fitur dihapus dengan thinning dari kartu mana pun, semua fitur lain dengan thinningRank yang sama atau lebih buruk juga akan dihapus. Dengan maxFeaturesPerTile ditetapkan ke 10, segitiga merah tidak muncul di kartu apa pun karena segitiga merah ditipiskan di kartu kiri atas dan kiri bawah. Dengan maxFeaturesPerTile ditetapkan ke 9, kotak hijau juga tidak muncul di kartu apa pun karena kotak hijau ditipiskan di kartu kiri bawah. Strategi pengecilan ini cenderung tidak menghasilkan tampilan kartu yang berbeda seperti yang dapat dilakukan strategi HIGHER_DENSITY, tetapi memiliki potensi untuk memperkecil kartu ke sejumlah fitur yang jauh di bawah batas maxFeaturesPerTile.

thinningStrategy Semua Fitur (untuk referensi) maxFeaturesPerTile: 10 maxFeaturesPerTile: 9

'HIGHER_DENSITY'

Pengurangan yang tidak terlalu agresif.

Mempertahankan kepadatan fitur yang tinggi melalui pengecilan intra-kartu.

'GLOBALLY_CONSISTENT'

Pengurangan yang lebih agresif.

Mempertahankan peringkat pengenceran minimum yang konsisten secara global melalui pengenceran antar-kartu.

Peringkat urutan Z

Parameter peringkat urutan z (zOrderRanking) mengontrol pengurutan fitur yang tumpang-tindih. Atribut ini menerima serangkaian aturan yang menentukan fitur apa saja yang akan muncul di bawah/di atas fitur lain saat tumpang-tindih. Logika dan format aturan untuk menetapkan urutan fitur sama dengan penyempitan peringkat. Lihat bagian tersebut untuk mengetahui detail selengkapnya.

Aturan peringkat urutan z dapat diberikan sebagai string atau daftar string dengan nama properti dan arah pengurutan yang diinginkan dipisahkan oleh spasi:

// 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']

Aturan di atas menentukan bahwa fitur dengan nilai "my-property" yang lebih besar harus muncul di bawah fitur dengan nilai yang lebih kecil, fitur dengan jenis geometri yang lebih kecil harus muncul di bawah fitur dengan jenis geometri yang lebih besar (misalnya, titik di bawah garis dan garis di bawah poligon), dan fitur dengan tingkat zoom minimum yang lebih kecil (fitur yang lebih besar) harus muncul di bawah fitur dengan tingkat zoom minimum yang lebih besar (fitur yang lebih kecil).

Tabel berikut menunjukkan bagaimana mengubah aturan zOrderRanking untuk properti "size" memengaruhi fitur yang muncul di depan fitur lain saat tumpang-tindih. Di baris pertama, fitur diurutkan berdasarkan ukuran dalam urutan menurun, yang berarti fitur berukuran lebih besar akan muncul di bawah fitur yang lebih kecil (fitur yang lebih besar digambar terlebih dahulu). Sebaliknya, di baris kedua, fitur diurutkan berdasarkan ukuran dalam urutan menaik, yang berarti fitur berukuran lebih kecil harus muncul di bawah fitur yang lebih besar (fitur yang lebih kecil digambar terlebih dahulu).

zOrderRanking: 'size DESC'

Fitur dengan size yang lebih kecil akan muncul di atas fitur dengan size yang lebih besar.

zOrderRanking: 'size ASC'

Fitur dengan size yang lebih besar akan muncul di atas fitur dengan size yang lebih kecil.