کیت توسعه نرمافزار Maps ویژه Android میتواند تصویر بیتمپ نقشه را ارائه دهد و تعامل محدودی را به کاربر ارائه دهد. به این نقشه، نقشه حالت سادهشده میگویند.
نمونههای کد
مخزن ApiDemos در GitHub شامل نمونههایی است که استفاده از حالت Lite را نشان میدهد:
- LiteDemoActivity - Java: اصول اولیه استفاده از نقشه حالت سادهشده در Java
- LiteDemoActivity - Kotlin: اصول استفاده از نقشه حالت Lite در Kotlin
- LiteListDemoActivity - Java: نمایش کارآمد نقشهها در ListViews بااستفاده از حالت ساده در Java
- LiteListDemoActivity - Kotlin: نمایش کارآمد نقشهها در ListViews بااستفاده از حالت ساده در Kotlin
نمای کلی حالت سادهشده
نقشه حالت ساده تصویر بیتمپ از نقشه در مکان و سطح بزرگنمایی مشخصشده است. حالت 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، سطح بزرگنمایی به نزدیکترین عدد صحیح گرد میشود.
با فراخوانی تماس با |
| رویدادهای نقشه | پشتیبانی میشود؟ تا حدودی
حالت ساده از
برای غیرفعال کردن رویدادهای کلیک در نقشه در حالت Lite، میتوانید
برای جزئیات، اسناد رویدادها را ببینید. |
| نقشههای داخلی و ساختمانها | پشتیبانی میشود؟ نه
حالت «سبک» همان کاشیهای Maps Static API را نشان میدهد.
این یعنی اگر طرح طبقه داخلی در کاشی پیشفرض گنجانده شده باشد،
نمایش داده خواهد شد. درغیراینصورت، این کار را نمیکند. علاوهبراین، نمیتوانید سطح نشاندادهشده را تغییر دهید یا انتخابگر سطح را دستکاری کنید. |
| لایه ترافیک | پشتیبانی میشود؟ نه
GoogleMap.setTrafficEnabled() در حالت ساده پشتیبانی نمیشود. |
| رونهادهای زمین | پشتیبانی میشود؟ نه
GoogleMap.addGroundOverlay() در حالت ساده پشتیبانی نمیشود. |
| رونهادهای کاشی | پشتیبانی میشود؟ نه
GoogleMap.addTileOverlay() در حالت ساده پشتیبانی نمیشود. |
| اشارهها | پشتیبانی میشود؟ نه
حالت ساده از اشارهها پشتیبانی نمیکند. فعال و غیرفعال کردن اشارهها
تأثیری نخواهد داشت. |
| نمای خیابان | پشتیبانی میشود؟ نه
نمای خیابان در حالت ساده پشتیبانی نمیشود. |