بهینه سازی FeatureView

هنگام صادرات یک FeatureCollection به عنوان دارایی FeatureView ، می‌توانید پارامترهایی را تنظیم کنید که اولویت‌بندی ویژگی‌ها در سطح بزرگنمایی معین (نازک شدن) و نحوه ترتیب‌بندی ویژگی‌های همپوشانی (z-order) باشد. این تنظیمات بر سرعت و ویژگی های نمایش اشیاء FeatureView تأثیر می گذارد. بخش‌های زیر پارامترهای بهینه‌سازی را توصیف می‌کنند و تأثیر آن‌ها را با استفاده از نمودارهای مفهومی نشان می‌دهند که در آن کاشی‌های نقشه با خطوط چین مشخص می‌شوند، ویژگی‌های قابل مشاهده چند ضلعی‌های خط یکدست، و ویژگی‌های دور انداخته شده (نازک‌شده) چند ضلعی‌هایی با خطوط چین و بدون پر هستند.

بلوک کد زیر نمونه ای از Export FeatureCollection به FeatureView است که پارامترهای بهینه سازی شرح داده شده در این صفحه را برجسته می کند.

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

حداکثر ویژگی در هر کاشی

پارامتر حداکثر ویژگی در هر کاشی ( maxFeaturesPerTile ) حداکثر تعداد ویژگی هایی را که باید بر روی یک کاشی نقشه ارائه شوند را مشخص می کند. این مقدار یک کران بالایی است و بسته به استراتژی نازک شدن ممکن است به میزان قابل توجهی کمتر باشد. این مقدار را می توان روی هر چیزی بین 1 تا 2000 تنظیم کرد. مقادیر بالاتر ویژگی های بیشتری را در هر کاشی نشان می دهد، اما کاشی ها زمان بیشتری برای بارگذاری دارند.

در جدول زیر توجه کنید که با کاهش مقدار پارامتر maxFeaturesPerTile ، تعداد ویژگی هایی که هر کاشی نقشه را قطع می کنند کاهش می یابد. یک کاشی ممکن است کمتر از حداکثر داشته باشد، اما نه بیشتر.

همه ویژگی ها (برای مرجع)

maxFeaturesPerTile: 5

در هر کاشی بیش از 5 ویژگی را نشان نمی دهد.

maxFeaturesPerTile: 2

در هر کاشی بیش از 2 ویژگی را نشان نمی دهد.

نازک شدن رتبه

پارامتر رتبه بندی نازک شدن ( thinningRanking ) نحوه اولویت بندی داده ها برای نازک شدن بر اساس نوع هندسه، اندازه ویژگی و مقادیر ویژگی ویژگی را کنترل می کند. مجموعه‌ای از قوانین را می‌پذیرد که به الگوریتم نازک‌سازی اطلاع می‌دهد که با رسیدن به maxFeaturesPerTile ، کدام ویژگی‌ها باید جلوتر از دیگران کاهش یابد. هر قانون شامل یک ویژگی ویژگی است که به دنبال آن جهت مرتب سازی (صعودی/ ASC یا نزولی/ DESC ) می باشد. می تواند یک یا چند قانون وجود داشته باشد. علاوه بر ویژگی‌های ویژگی سنتی، دو ویژگی ویژه وجود دارد که می‌توان از آنها برای اولویت‌بندی نازک‌کردن استفاده کرد: .geometryType و .minZoomLevel .

  • .geometryType – ویژگی ها را به صورت نقاط، خطوط یا چند ضلعی مشخص می کند. این انواع هندسه به ترتیب به عنوان کوچک، متوسط ​​و بزرگ برای مرتب‌سازی تعیین می‌شوند.
  • .minZoomLevel - پایین ترین سطح بزرگنمایی نقشه که در آن یک ویژگی ممکن است به یک کاشی ارائه شود. سطوح زوم زیر این مقدار، ویژگی را نشان نمی دهد، سطوح بزرگنمایی بیشتر یا مساوی با این مقدار ممکن است ویژگی را نمایش دهد. به یاد داشته باشید که سطوح زوم کم، منطقه جغرافیایی بزرگ تری را در هر کاشی نقشه نسبت به سطوح بزرگنمایی بالاتر نشان می دهد. به ویژگی های نقطه مقدار 0 اختصاص داده شده است (در تمام سطوح بزرگنمایی قابل مشاهده است). هندسه‌های خط و چند ضلعی بر اساس کران (خطوط) یا مساحت (چند ضلعی‌ها) مقادیری نسبت داده می‌شوند: ویژگی‌های بزرگ مقادیر .minZoomLevel کمتری نسبت به ویژگی‌های کوچک‌تر دارند.

قوانین رتبه بندی نازک شدن را می توان به عنوان یک رشته یا لیستی از رشته ها ارائه کرد که در آن نام ویژگی و جهت مرتب سازی مورد نظر با یک فاصله از هم جدا می شوند:

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

قوانین بالا، الگوریتم نازک‌سازی را به اولویت‌بندی ویژگی‌های با ویژگی «my-property» بزرگ‌تر هدایت می‌کند (ویژگی‌های نازک با مقدار «my-property» کوچک‌تر، اولویت‌بندی ویژگی‌هایی با نوع هندسه کوچک‌تر (مثلاً نازک کردن چند ضلعی‌ها قبل از خطوط و خطوط قبل از نقاط)، و اولویت‌بندی ویژگی‌های با چندضلعی‌های کوچک‌تر نسبت به سطح بزرگنمایی کوچکتر.

جدول زیر نشان می دهد که چگونه تغییر قاعده thinningRanking برای ویژگی size بر ویژگی هایی که ترسیم می شوند تأثیر می گذارد. تعداد کل ویژگی‌ها در هر کاشی (ستون «همه ویژگی‌ها») بیشتر از 5 است، بنابراین نازک‌سازی برای محدود کردن ویژگی‌هایی که ترسیم می‌شوند اعمال می‌شود ( thinningRanking: 5 ستون). در ردیف اول، ویژگی ها بر اساس size از بزرگترین به کمترین مرتب شده اند، به این معنی که ویژگی های بزرگتر بر ویژگی های کوچکتر اولویت دارند (ویژگی ها به ترتیب نزولی بر اساس اندازه ترسیم می شوند تا زمانی که به maxFeaturesPerTile برسیم). در ردیف دوم، ویژگی ها بر اساس اندازه صعودی مرتب شده اند، بنابراین کوچکترین ویژگی ها ابتدا به ترتیب اندازه ترسیم می شوند تا به maxFeaturesPerTile برسیم.

thinningRanking همه ویژگی ها (برای مرجع) maxFeaturesPerTile: 5

'size DESC'

ویژگی های با size بزرگتر را اولویت بندی کنید (ابتدا ویژگی ها را با size کوچکتر نازک کنید).

'size ASC'

اولویت‌بندی ویژگی‌های با size کوچکتر (ابتدا ویژگی‌ها را با size بزرگ‌تر نازک کنید)

استراتژی نازک شدن

پارامتر استراتژی نازک شدن ( thinningStrategy ) در کنار رتبه بندی نازک شدن ( thinningRanking ) برای کاهش داده ها در زمان صادرات برای بهبود عملکرد رندر استفاده می شود. دو استراتژی پشتیبانی می‌شود: HIGHER_DENSITY و GLOBALLY_CONSISTENT . هنگام نازک شدن در یک سطح بزرگنمایی خاص، استراتژی نازک شدن با چگالی بالاتر به این معنی است که هر کاشی ممکن است بدون در نظر گرفتن رتبه ویژگی‌ها در کاشی‌های دیگر، تا حد امکان به حد maxFeaturesPerTile نزدیک شود. استراتژی نازک شدن ثابت جهانی به این معنی است که اگر یک ویژگی با نازک شدن از هر کاشی حذف شود، تمام ویژگی‌های دارای رتبه نازک شدن یکسان یا پایین‌تر از همه کاشی‌ها حذف می‌شوند، صرف نظر از اینکه یک کاشی به نازک شدن نیاز داشته باشد (بیشتر از حد maxFeaturesPerTile ). از استراتژی HIGHER_DENSITY برای بهینه‌سازی چگالی ویژگی استفاده کنید و از استراتژی GLOBALLY_CONSISTENT برای بهینه‌سازی برای نمایش بین‌کاشی ثابت رتبه ویژگی استفاده کنید.

جدول زیر نشان می دهد که چگونه تغییر thinningStrategy بر نازک شدن اثر می گذارد. در این مثال، داده ها با استفاده از شکل/رنگ نقاط نازک می شوند. دایره های آبی، مربع های سبز و مثلث های قرمز به ترتیب از بهترین تا بدترین رتبه های نازک شدن دارند. برای هر thinningStrategy ( HIGHER_DENSITY و GLOBALLY_CONSISTENT )، سه مقدار مختلف برای maxFeaturesPerTile مشخص شده وجود دارد: یک عدد به اندازه کافی بزرگ برای نشان دادن همه ویژگی ها، 10 ویژگی، و 9 ویژگی.

با HIGHER_DENSITY و 10 maxFeaturesPerTile ، 6 مثلث قرمز (کمترین اولویت در رتبه نازک شدن) از کاشی بالا سمت چپ نازک می شود و 1 مثلث قرمز از کاشی پایین سمت چپ نازک می شود. با HIGHER_DENSITY و 9 maxFeaturesPerTile ، 7 مثلث قرمز از کاشی بالا سمت چپ نازک می شوند، و یک مثلث قرمز و مربع سبز از کاشی پایین سمت چپ نازک می شوند. در این مثال ها، هر کاشی به طور مستقل، بدون در نظر گرفتن رتبه نازک شدن ویژگی ها در کاشی های همسایه، نازک می شود. بسته به ویژگی‌های داده‌ها، این استراتژی نازک‌سازی می‌تواند منجر به این شود که کاشی‌های نقشه مجاور به طور مشخص متفاوت از یکدیگر ظاهر شوند، اما تعداد ویژگی‌های ترسیم شده را به حداکثر می‌رساند.

به یاد داشته باشید که نازک شدن GLOBALLY_CONSISTENT به این معنی است که اگر یک ویژگی با نازک شدن از هر کاشی حذف شود، همه ویژگی‌های دیگر با thinningRank برابر یا بدتر نیز حذف خواهند شد. با تنظیم maxFeaturesPerTile روی 10، مثلث های قرمز روی هیچ کاشی نشان داده نمی شوند زیرا یک مثلث قرمز در کاشی های بالا سمت چپ و پایین سمت چپ نازک شده است. با تنظیم maxFeaturesPerTile روی 9، مربع های سبز به طور مشابه روی هیچ کاشی نشان داده نمی شوند، زیرا یک مربع سبز رنگ در کاشی پایین سمت چپ نازک شده است. این استراتژی نازک‌سازی احتمال کمتری دارد که ظاهر کاشی مشخصی را ایجاد کند که استراتژی HIGHER_DENSITY می‌تواند ایجاد کند، اما این پتانسیل را دارد که کاشی‌ها را به تعدادی ویژگی بسیار کمتر از حد maxFeaturesPerTile نازک کند.

thinningStrategy همه ویژگی ها (برای مرجع) maxFeaturesPerTile: 10 maxFeaturesPerTile: 9

'HIGHER_DENSITY'

نازک شدن تهاجمی کمتر.

از طریق نازک شدن درون کاشی، چگالی ویژگی بالایی را حفظ می کند.

'GLOBALLY_CONSISTENT'

نازک شدن تهاجمی تر.

حداقل رتبه نازک شدن را در سطح جهانی از طریق نازک شدن بین کاشی حفظ می کند.

رتبه بندی به ترتیب Z

پارامتر رتبه بندی z-order ( zOrderRanking ) ترتیب ویژگی های همپوشانی را کنترل می کند. مجموعه‌ای از قوانین را می‌پذیرد که مشخص می‌کند در صورت همپوشانی، چه ویژگی‌هایی باید در زیر/روی دیگران ظاهر شوند. منطق قاعده و قالب برای تنظیم ترتیب ویژگی ها مانند رتبه بندی نازک است، لطفاً برای جزئیات بیشتر به آن بخش مراجعه کنید.

قوانین رتبه بندی Z-order را می توان به عنوان یک رشته یا لیستی از رشته ها ارائه کرد که در آن نام ویژگی و جهت مرتب سازی مورد نظر با یک فاصله از هم جدا می شوند:

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

قوانین بالا مشخص می‌کند که ویژگی‌های با مقدار «my-property» بزرگ‌تر باید در زیر ویژگی‌ها با مقدار کوچک‌تر، ویژگی‌هایی با نوع هندسه کوچک‌تر باید در زیر ویژگی‌هایی با نوع هندسه بزرگ‌تر (به عنوان مثال، نقاط زیر خطوط و خطوط زیر چند ضلعی) و ویژگی‌های با سطح زوم کوچک‌تر (ویژگی‌های بزرگتر) باید در زیر ویژگی‌ها با سطح بزرگنمایی کوچک‌تر ظاهر شوند.

جدول زیر نشان می دهد که چگونه تغییر قاعده zOrderRanking برای یک ویژگی "size" بر روی ویژگی هایی که هنگام همپوشانی در مقابل دیگران ظاهر می شوند تأثیر می گذارد. در ردیف اول، ویژگی ها بر اساس اندازه به ترتیب نزولی مرتب شده اند، به این معنی که ویژگی های با اندازه بزرگتر باید در زیر ویژگی های کوچکتر ظاهر شوند (ویژگی های بزرگتر ابتدا ترسیم می شوند). برعکس، در ردیف دوم، ویژگی ها بر اساس اندازه به ترتیب صعودی مرتب شده اند، به این معنی که ویژگی های اندازه کوچکتر باید در زیر ویژگی های بزرگتر ظاهر شوند (ویژگی های کوچکتر ابتدا ترسیم می شوند).

zOrderRanking: 'size DESC'

ویژگی های با size کوچکتر در بالای ویژگی های با size بزرگتر ظاهر می شوند.

zOrderRanking: 'size ASC'

ویژگی های با size بزرگتر در بالای ویژگی های با size کوچکتر ظاهر می شوند.