حالت ساده

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

نمونه‌های کد

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

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

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

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

افزودن نقشه حالت 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 غیرفعال کنید. برای جزئیات این دو تکنیک، به اسناد رویدادها مراجعه کنید.

رویدادهای چرخه حیات

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

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

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

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

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

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

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

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

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

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

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

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

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