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