Skip to content

پیکربندی نقشه سفارشی ​

تراز، مقیاس و تصویر پس‌زمینه می‌توانند به‌صورت مستقل برای هر نقشه ذخیره‌شده در دستگاه تنظیم شوند.

این تنظیمات می‌توانند در ویرایشگر بصری با انتخاب یک نقشه از فهرست نقشه‌ها یا با استفاده از ویژگی map_config در پیکربندی YAML تنظیم شوند.

پیکربندی نقشهپیکربندی نقشهپیکربندی نقشه

گزینه‌های پیکربندی نقشه ​

تنظیمات داخل map_config به ازای هر شاخص نقشه با استفاده از کلیدهایی مانند map_1، map_2 و غیره اعمال می‌شوند. هر یک از گزینه‌های زیر می‌تواند تحت یک نقشه خاص تعریف شود:

هشدار

شاخص‌های نقشه بر اساس ترتیب ایجاد آنها اختصاص داده می‌شوند، به‌طوری‌که قدیمی‌ترین نقشه پایین‌ترین شاخص را دریافت می‌کند و از 1 شروع می‌گردد. با این حال، اگر ویژگی نقشه چندطبقه روی دستگاهی که چندین نقشه و پیکربندی آنها دارد غیرفعال شود، نقشه فعال فعلی به‌طور خودکار به شاخص 1 اختصاص داده می‌شود. این بدان معناست که نقشه‌ای که قبلاً تحت شاخص دیگری پیکربندی شده بود ناگهان پیکربندی map_1.

  • rotation: چرخش پیکربندی شده در داده‌های نقشه را نادیده می‌گیرد تا نقشه را با چرخش سفارشی مختص این کارت ترسیم کند و مقادیر 0، 90، 180 یا 270 را می‌پذیرد.
  • scale: محاسبه مقیاس خودکار مبتنی بر تفاوت بین اندازه اصلی نقشه و اندازه کارت را نادیده می‌گیرد و مقادیری بین 0.1 و 20 را می‌پذیرد.
  • object_scale: اندازه‌های خودکار اشیاء نقشه مانند آیکون‌های اتاق و موانع را نادیده می‌گیرد و اجازه می‌دهد آنها بزرگتر یا کوچکتر به نظر برسند.
  • opacity: شفافیت جهانی نقشه ترسیم شده. مقدار اولیه 1 است و مقادیری تا 0 را می‌پذیرد.
  • object_opacity: شفافیت اشیاء ترسیم شده روی نقشه، مانند آیکون‌های اتاق یا موانع. مقدار اولیه 1 است و مقادیر تا 0 را می‌پذیرد.
  • font_size: اندازه فونت برای حباب‌های متنی که بر اشیاء فعال شده نمایش داده می‌شوند. مقادیر بین 0 و 12 را می‌پذیرد.
  • hidden_objects: اشیاء مخفی نقشه تعریف شده در پیکربندی پیشرفته جهانی را برای این نقشه خاص نادیده می‌گیرد.

مرکزدهی و مقیاس‌دهی ​

پارامترهای زیر برای بازنویسی اندازه و مختصات مرکزی که کارت به‌صورت خودکار برای رسم نقشه محاسبه می‌کند استفاده می‌شوند.

هشدار

مقادیر ارائه شده برای این پارامترها نسبت به ابعاد خام و بدون مقیاس نقشه هستند، نه پیکسل‌های مطلق روی صفحه. چون محاسبه دستی این مختصات نسبی بسیار پیچیده است، مقادیر دقیق مورد نیاز می‌توانند از بخش اطلاعات نقشه زنده ویرایشگر بصری استخراج شوند.

  • left: مرکز افقی نقشه که به‌طور خودکار محاسبه شده را بازنویسی می‌کند. به‌عنوان مثال، تنظیم این مقدار به 0 مختصات 0 نقشه را روی محور X دقیقاً در مرکز افقی کارت قرار می‌دهد. این نقطه معمولاً درست روبه‌روی اسکله قرار دارد.
  • top: مرکز عمودی نقشه که به‌طور خودکار محاسبه شده را بازنویسی می‌کند. به‌عنوان مثال، تنظیم این مقدار به 0 مختصات 0 نقشه را روی محور Y دقیقاً در مرکز عمودی کارت قرار می‌دهد. این نقطه معمولاً درست روبه‌روی اسکله قرار دارد.
  • width: عرض واقعی نقشه را که برای محاسبه تناسب استفاده می‌شود، لغو می‌کند. از آنجا که کارت نقشه را بر اساس بزرگترین بعد متناسب مقیاس می‌کند، وارد کردن مقدار بزرگ‌تر از عرض واقعی نقشه باعث کوچک شدن نقشه داخل کارت می‌شود، در حالی که مقدار کوچکتر آن را بزرگ می‌کند.
  • height: ارتفاع واقعی نقشه را که برای محاسبه تناسب استفاده می‌شود، لغو می‌کند. مشابه ویژگی width، وارد کردن مقدار بزرگ‌تر از ارتفاع واقعی نقشه باعث کوچک شدن نقشه داخل کارت می‌شود، در حالی که مقدار کوچکتر آن را بزرگ می‌کند.

مثال YAML ​

yaml
type: custom:dreame-vacuum-card
entity: vacuum.l10s_gen2
map_config:
  map_1:
    rotation: 90
    scale: 1.2
    object_scale: 1.5
    left: 10
    top: -20
    hidden_objects:
      - name
      - virtual_wall
  map_2:
    rotation: 180
    opacity: 0.8

تصاویر پس‌زمینه و پوشش ​

کارت از رندر کردن یک تصویر پس‌زمینه سفارشی پشت نقشه پشتیبانی می‌کند، که به‌ویژه برای ایجاد داشبوردهای نقشه‌طبقه سه‌بعدی جذاب مفید است. این رفتار با استفاده از ویژگی background_image پیکربندی می‌شود.

تصویر پس‌زمینه پیکربندی نقشهتصویر پس‌زمینه پیکربندی نقشه

برای افزایش بیشتر اثر سه‌بعدی، می‌توان یک overlay_image اختیاری نیز ارائه داد. تصویر روی‌هم‌افتاده مستقیماً بر روی مسیر تمیزکاری ربات کشیده می‌شود و هدف اصلی آن، پوشاندن بصری مسیرهایی است که پشت دیوارها یا مبلمان فیزیکی در نقشه طبقه حرکت می‌کنند. ترکیب هر دو تصویر پس‌زمینه و تصویر روی‌هم‌افتاده به شدت توصیه می‌شود تا حس واقعی عمق در داشبوردهای سه‌بعدی ایجاد شود.

تصویر پس‌زمینه خانهتصویر پس‌زمینه خانه
تصویر پس‌زمینه نقشه‌هاتصویر پس‌زمینه نقشه‌ها
تصویر پس‌زمینه نقشه ذخیره‌شدهتصویر پس‌زمینه نقشه ذخیره‌شده

طراحی نقشه سه‌بعدی

هنگام ایجاد گرافیک سفارشی برای یک نقشه سه‌بعدی، طراحی باید به عنوان دو تصویر جداگانه با پس‌زمینه شفاف صادر شود: یک لایه پایه که شامل کف‌ها و مبلمان کم ارتفاع است و یک لایه بالایی که فقط دیوارهای بالایی را شامل می‌شود.

تصاویر نمونه زیر، که بر روی یک الگوی شطرنجی نشان داده شده‌اند تا نواحی شفاف آن‌ها را برجسته کنند، با استفاده از برنامه رایگان طراحی داخلی Sweet Home 3D تولید شده و سپس در نرم‌افزار استاندارد ویرایش تصویر پردازش شده‌اند تا نواحی کف حذف شده و بخش‌های شفاف مورد نیاز ایجاد شوند.

تصویر پس‌زمینهتصویر پس‌زمینه
تصویر پس‌زمینه
تصویر همپوشانیتصویر همپوشانی
تصویر همپوشانی

background_image و overlay_image از خصوصیات زیر برای تراز کردن نقشه طبقه پشتیبانی می‌کنند:

  • url: مسیر تصویر، مانند /local/first_floor_bg.
  • opacity: شفافیت تصویر. مقدار اولیه 1 است و مقادیر تا 0 را می‌پذیرد.

مرکزدهی و مقیاس‌دهی تصاویر ​

خصوصیات left، top، width و height برای تصاویر با استفاده از همان منطق مختصات نسبی که در تنظیمات مرکزدهی و مقیاس‌دهی نقشه استفاده می‌شود عمل می‌کنند. این خصوصیات کاملاً اختیاری هستند.

حتی اگر تصویر سفارشی دقیقا با اندازه نقشه مطابقت داشته باشد، توصیه می‌شود حداقل مقادیر top و left ارائه شوند. این اطمینان را می‌دهد که اگر در آینده اندازه کل نقشه تغییر کند، تصویر سفارشی به طور امن به همان موقعیت نسبی ثابت باقی می‌ماند.

مقادیر پیش‌فرض

هنگامی که این مقادیر ارائه نشوند، کارت به‌طور خودکار اندازه و مرکز تصویر سفارشی را با داده‌های نقشه برابر می‌کند. این ویژگی‌ها کاملاً اختیاری هستند و تنها به منظور جایگزینی این رفتار وجود دارند، جلوگیری از جابه‌جایی تصویر سفارشی یا تغییر مقیاس آن در صورتی که نقشه به مرور زمان بزرگ یا کوچک شود.

  • left: مرکز افقی تصویر را نسبت به مرکز نقشه تعریف می‌کند. به‌عنوان مثال، تنظیم این مقدار روی 0 مختصات 0 نقشه را در محور X دقیقاً در مرکز افقی تصویر قرار می‌دهد. این نقطه معمولاً درست در جلوی اسکله قرار دارد.
  • top: مرکز عمودی تصویر را نسبت به مرکز نقشه تعریف می‌کند. به‌عنوان مثال، تنظیم این مقدار روی 0 مختصات 0 نقشه را در محور Y دقیقاً در مرکز عمودی تصویر قرار می‌دهد. این نقطه معمولاً درست در جلوی اسکله قرار دارد.
  • width: عرض تصویر را نسبت به سیستم مختصات اصلی و بدون مقیاس نقشه تعریف می‌کند، نه نسبت به پیکسل‌های مطلق صفحه نمایش. برای مثال، تنظیم این مقدار برای مطابقت با عرض خام نقشه تضمین می‌کند که تصویر به‌طور متناسب مقیاس‌پذیر بوده و دقیقاً همان ناحیه افقی داده‌های نقشه را پوشش دهد.
  • height: ارتفاع تصویر را نسبت به سیستم مختصات اصلی و بدون مقیاس نقشه تعریف می‌کند. برای مثال، تنظیم این مقدار برای مطابقت با ارتفاع خام نقشه تضمین می‌کند که تصویر به‌طور متناسب مقیاس‌پذیر بوده و دقیقاً همان ناحیه عمودی داده‌های نقشه را پوشش دهد.

چرخش بومی

تصاویر سفارشی دارای ویژگی چرخش مستقل خود نیستند؛ چرخش آن‌ها ذاتاً به چرخش نقشه وابسته است. برای اطمینان از هم‌ترازی در تمام نماها، جهت‌گیری پایه تصویر طراحی‌شده باید دقیقاً با جهت‌گیری اولیه نقشه هنگام تنظیم بر روی 0 درجه مطابقت داشته باشد.

نسبت پیکسل دستگاه (DPR)

کارت نقشه را بر اساس نسبت پیکسل صفحه‌نمایش دستگاه رندر می‌کند. برای جلوگیری از تار شدن تصاویر پس‌زمینه و پوشش روی نمایشگرهای با وضوح بالا مانند تلفن‌های همراه، به شدت توصیه می‌شود که این تصاویر را حداقل دو برابر اندازه مورد نیاز در داشبورد دسکتاپ ارائه دهید.

تعیین اندازه تصویر

داده‌های نقشه شامل ویژگی grid_size است که نشان می‌دهد یک پیکسل چند میلی‌متر را در دنیای واقعی نمایندگی می‌کند. این مقدار در بخش اطلاعات نقشه زنده یافت می‌شود. به عنوان مثال، grid_size برابر با 50 به معنای آن است که هر پیکسل معادل ۵۰ میلی‌متر یا ۵ سانتی‌متر است. با تقسیم ابعاد واقعی خانه بر این grid_size، مقادیر دقیق width و height برای وارد کردن در پیکربندی می‌توان به ‌دقت محاسبه کرد، تا اطمینان حاصل شود که تصویر نقشه ۱:۱ با اندازه واقعی خانه به‌طور کامل هماهنگ است.

مثال YAML ​

yaml
type: custom:dreame-vacuum-card
entity: vacuum.l10s_gen2

map_config:
  map_1:
    object_scale: 7
    width: 250
    height: 183
    opacity: 0.45
    hidden_objects:
      - customized_cleaning
      - floor
      - name
      - name_background
      - no_go
      - no_mop
      - order
      - walls
    background_image:
      url: /local/home.png
      left: 77
      top: 10.3
      width: 250
      height: 183
      opacity: 0.75
    overlay_image:
      url: /local/home_overlay.png
      opacity: 0.9
  map_2:
    left: 41
    top: -12
    width: 269
    height: 171
    background_image:
      url: /local/second_floor_bg.png