حالت ساده

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

نمونه‌های کد

مخزن ApiDemos در GitHub شامل نمونه‌هایی است که استفاده از حالت Lite را نشان می‌دهد:

نمای کلی حالت ساده‌شده

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

کاربرانی که نقشه را مشاهده می‌کنند نمی‌توانند نقشه را بزرگ‌نمایی کنند یا حرکت دهند. نمادهای روی نقشه به کاربران امکان می‌دهد نقشه را در برنامه تلفن همراه Google Maps مشاهده کنند و درخواست مسیر کنند.

افزودن نقشه حالت Lite

حالت Lite از همان کلاس‌ها و میاناهای Google Maps Android API کامل استفاده می‌کند. می‌توانید GoogleMap را به روش‌های زیر روی حالت Lite تنظیم کنید:

  • یا به‌عنوان مشخصه XML برای MapView یا MapFragment
  • یا در شیء GoogleMapOptions

به‌عنوان مشخصه XML برای MapView یا MapFragment

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.MapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:liteMode="true"/>

در شیء GoogleMapOptions

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

جاوا

GoogleMapOptions options = new GoogleMapOptions().liteMode(true);

      

برای جزئیات مربوط به تنظیم وضعیت اولیه نقشه، به راهنمای شیء نقشه مراجعه کنید.

هدف‌ها برای راه‌اندازی نمای نقشه یا درخواست مسیر

به‌طور پیش‌فرض، نوارابزاری در پایین سمت چپ نقشه حاوی نمادهایی است که دسترسی به نمای نقشه یا درخواست مسیر را در برنامه تلفن همراه Google Maps فراهم می‌کند. می‌توانید نوارابزار را با فراخوانی UiSettings.setMapToolbarEnabled(false) غیرفعال کنید. برای جزئیات بیشتر، به اسناد نوارابزار مراجعه کنید.

همچنین به‌طور پیش‌فرض وقتی کاربر روی نقشه تک‌ضرب می‌زند، API برنامه تلفن همراه Google Maps را راه‌اندازی می‌کند. می‌توانید بااستفاده از GoogleMap.setOnMapClickListener() برای تنظیم شنونده خودتان، این رفتار را لغو کنید. همچنین می‌توانید با فراخوانی setClickable() در نمایی که حاوی MapView یا MapFragment است، رویدادهای کلیک را در نقشه غیرفعال کنید. برای جزئیات این دو تکنیک، به اسناد رویدادها مراجعه کنید.

رویدادهای چرخه زندگی

هنگام استفاده از میانای برنامه‌سازی کاربردی در حالت کاملاً تعاملی، کاربران کلاس MapView باید همه روش‌های چرخه زندگی فعالیت را به روش‌های مربوطه در کلاس MapView بازارسال کنند. نمونه‌هایی از روش‌های چرخه زندگی عبارت‌اند از onCreate()، onDestroy()، onResume()، و onPause().

هنگام استفاده از کلاس MapView در حالت Lite، بازارسال رویدادهای چرخه حیات اختیاری است، به‌جز در شرایط زیر:

  • فراخوانی onCreate() الزامی است، درغیراین‌صورت هیچ نقشه‌ای نشان داده نخواهد شد.
  • اگر می‌خواهید نقطه «مکان من» را در نقشه حالت Lite نشان دهید و از منبع مکان پیش‌فرض استفاده کنید، باید onResume() و onPause() را فراخوانی کنید، زیرا منبع مکان فقط بین این فراخوانی‌ها به‌روز می‌شود. اگر از منبع مکان خودتان استفاده می‌کنید، لازم نیست این دو روش را فراخوانی کنید.

ویژگی‌های پشتیبانی‌شده میانای برنامه‌سازی کاربردی

جدول زیر رفتار نقشه حالت Lite را برای هر حوزه از عملکرد API شرح می‌دهد. اگر برنامه‌ای روشی را فراخوانی کند که در حالت lite پشتیبانی نمی‌شود، میانای برنامه‌سازی کاربردی پیام هشداری را ثبت می‌کند.

کارکرد
انواع نقشه
پشتیبانی می‌شود؟ بله
انواع نقشه زیر ازطریق GoogleMapOptions.mapType() و GoogleMap.setMapType() دردسترس است: MAP_TYPE_NORMAL، MAP_TYPE_SATELLITE، MAP_TYPE_TERRAIN، MAP_TYPE_HYBRID، MAP_TYPE_NONE
چندخطی‌ها، چندضلعی‌ها، دایره‌ها
پشتیبانی می‌شود؟ بله
عملکرد حالت ساده برای شکل‌ها با API کامل مطابقت دارد.
پیش‌بینی
پشتیبانی می‌شود؟ بله
عملکرد حالت Lite برای Projection با API کامل مطابقت دارد.
مکان من
پشتیبانی می‌شود؟ بله
عملکرد حالت Lite برای لایه «مکان من» با API کامل مطابقت دارد.
لایه‌گذاری نقشه
پشتیبانی می‌شود؟ بله
پشتیبانی حالت Lite برای لایه‌گذاری نقشه با API کامل مطابقت دارد.
پنجره‌های اطلاعات
پشتیبانی می‌شود؟ بله
اگر title() نشانگر را تنظیم کنید، وقتی کاربر روی نشانگر تک‌ضرب می‌زند، پنجره اطلاعات پیش‌فرض ظاهر می‌شود. می‌توانید پنجره اطلاعات را با فراخوانی showInfoWindow() روی نشانگر به‌صورت برنامه‌نویسی‌شده نشان دهید. همچنین می‌توانید ازطریق میانای InfoWindowAdapter، پنجره‌های اطلاعات سفارشی ایجاد کنید.
سبک‌های نقشه پایه سفارشی
پشتیبانی می‌شود؟ تاحدی
کیت توسعه نرم‌افزار Google Maps برای Android از سبک سفارشی نقشه مبنا پشتیبانی می‌کند. «حالت Lite» فقط از سبک سفارشی مبتنی بر JSON پشتیبانی می‌کند، نه سبک مبتنی بر فضای ابری که برای ارائه نقشه سبک‌دار به شناسه نقشه نیاز دارد. حالت Lite همچنین از تنظیم طرح رنگ نقشه برای استفاده از حالت تاریک پشتیبانی نمی‌کند.
نشانگرها
پشتیبانی می‌شود؟ تاحدودی
می‌توانید نشانگر اضافه کنید و به رویداد کلیک پاسخ دهید. همچنین می‌توانید نمادهای نشانگر سفارشی اضافه کنید. نشانگر را نمی‌توان کشیدنی کرد. نشانگرها در نقشه حالت ساده تخت هستند و نمی‌توان آن‌ها را چرخاند.
موقعیت دوربین، بزرگ‌نمایی، و پویانمایی
پشتیبانی می‌شود؟ تاحدودی

می‌توانید هدف و بزرگ‌نمایی دوربین را تنظیم کنید، اما نمی‌توانید زاویه یا جهت را تنظیم کنید. سطح بزرگ‌نمایی در حالت Lite به نزدیک‌ترین عدد صحیح گرد می‌شود. با تماس با GoogleMap.moveCamera()، تصویر نقشه حالت ساده دیگری دریافت خواهید کرد. برای اطلاعات بیشتر درباره تنظیم و دستکاری دوربین، به تغییر دادن نما مراجعه کنید.

فراخوانی GoogleMap.animateCamera() منجر به پویانمایی حرکت دوربین نخواهد شد. نمای دوربین فوراً به موقعیت جدید منتقل می‌شود.

رویدادهای نقشه
پشتیبانی می‌شود؟ تاحدودی

حالت ساده از GoogleMap.setOnMapClickListener() و GoogleMap.setOnMapLongClickListener() پشتیبانی می‌کند.

برای غیرفعال کردن رویدادهای کلیک در نقشه در حالت Lite، می‌توانید setClickable() را در نمایی که حاوی MapView یا MapFragment است فراخوانی کنید. این ویژگی برای مثال هنگام نمایش نقشه یا نقشه‌ها در نمای فهرستی مفید است، جایی که می‌خواهید رویداد کلیک کنشی غیرمرتبط با نقشه را فراخوانی کند.

برای جزئیات، اسناد رویدادها را ببینید.

نقشه‌های داخلی و ساختمان‌ها
پشتیبانی می‌شود؟ نه
«حالت Lite» همان کاشی‌های Maps Static API را نشان می‌دهد. این یعنی اگر نقشه ساختمان در کاشی پیش‌فرض گنجانده شده باشد، نمایش داده خواهد شد. درغیراین‌صورت، این کار را نمی‌کند. علاوه‌براین، نمی‌توانید سطح نشان‌داده‌شده را تغییر دهید یا انتخابگر سطح را دستکاری کنید.
لایه ترافیک
پشتیبانی می‌شود؟ نه
GoogleMap.setTrafficEnabled() در حالت ساده پشتیبانی نمی‌شود.
رونهادهای زمین
پشتیبانی می‌شود؟ نه
GoogleMap.addGroundOverlay() در حالت ساده پشتیبانی نمی‌شود.
رونهادهای کاشی
پشتیبانی می‌شود؟ نه
GoogleMap.addTileOverlay() در حالت ساده پشتیبانی نمی‌شود.
اشاره‌ها
پشتیبانی می‌شود؟ نه
حالت ساده از اشاره‌ها پشتیبانی نمی‌کند. فعال و غیرفعال کردن اشاره‌ها تأثیری نخواهد داشت.
نمای خیابان
پشتیبانی می‌شود؟ نه
نمای خیابان در حالت ساده پشتیبانی نمی‌شود.