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

موقعیت دوربین
نمای نقشه بهعنوان دوربینی مدلسازی شده است که به نقطه خاصی در فضا نگاه میکند. موقعیت و جهت دوربین با مختصات عرض جغرافیایی/طول جغرافیایی/ارتفاع (بهعنوان «مرکز»، جایی که دوربین به آن اشاره میکند)، جهت، شیب، محدوده، و چرخش تعریف میشود.
مرکز (عرض جغرافیایی، طول جغرافیایی، ارتفاع)
مرکز نقطه خاصی را در فضای سهبعدی که دوربین درحال مشاهده آن است تعریف میکند. این مورد بااستفاده از کلاس
LatLngAltitude
مشخص میشود که مقادیر طول جغرافیایی، عرض جغرافیایی، و ارتفاع را ترکیب میکند. این ویژگی به شما امکان میدهد نقطه کانونی دوربین را در سه بعد قرار دهید.
عرض جغرافیایی میتواند بین ۹۰- و ۹۰ درجه باشد. طول جغرافیایی
بین ۱۸۰- و ۱۸۰ درجه است. ارتفاع برحسب متر مشخص میشود،
و نحوه تفسیر ارتفاع توسط
altitudeMode
دوربین تعیین میشود
(بهطور پیشفرض
AltitudeMode.ABSOLUTE،
AltitudeMode.RELATIVE_TO_GROUND،
یا
AltitudeMode.RELATIVE_TO_MESH).
جهت
جهت، جهت قطبنمای نقشه را مشخص میکند که برحسب درجه در جهت ساعتگرد از شمال واقعی اندازهگیری میشود. شمال معادل ۰ درجه، شرق معادل ۹۰ درجه، جنوب معادل ۱۸۰ درجه، و غرب معادل ۲۷۰ درجه است.
شیب
شیب زاویه دوربین را نسبت به محور عمودی مشخص میکند و با واحد درجه اندازهگیری میشود. شیب ۰ درجه یعنی دوربین مستقیماً بهسمت پایین و زمین (نظیر) اشاره میکند. کج کردن ۹۰ درجهای به این معنی است که دوربین بهصورت افقی در جهتی که توسط heading مشخص شده است قرار دارد.
بُرد
محدوده فاصله بین موقعیت خود دوربین و مرکز نقشه را برحسب متر تعریف میکند. این محدوده میتواند از صفر متر (بسیار نزدیک) تا شصتوسه میلیون متر متغیر باشد، که امکان مشاهده از بسیار نزدیک تا یک چشمانداز واقعاً جهانی را فراهم میکند. این گزینه بهطور مؤثری کنترل میکند که نقشه چقدر «بزرگنمایی» یا «کوچکنمایی» شود.
تاس انداختن
چرخش زاویه دوربین را نسبت به افق تنظیم میکند که برحسب درجه اندازهگیری میشود. از این پارامتر میتوان برای ایجاد جلوههایی مانند کج شدن درطول شبیهسازی پرواز یا حتی چرخش کامل بشکهای استفاده کرد که دوربین را حول محور دید خود میچرخاند.
کنترل کردن دوربین
نمونه کد زیر نشان میدهد که چگونه میتوانCamera
را بهصورت برنامهنویسیشده با فراخوانی روش
setCamera
در
GoogleMap3D
کنترل کرد.
برای استفاده از این نمونه کد، دستورالعملهای موجود در
راهاندازی و افزودن نقشه سهبعدی به
برنامه را دنبال کنید تا پروژه
Android Studio خود را با نقشه سهبعدی پایه راهاندازی کنید. سپس، کد زیر را به فایل
MainActivity.kt اضافه کنید:
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
کنترلهای میانای کاربر
علاوهبر اشارههای استاندارد، «کیت توسعه نرمافزار ۳ بعدی نقشه برای Android» کنترلهای میانای کاربر را نیز برای دستکاری موقعیت دوربین ارائه میدهد.
- کنترل بزرگنمایی دکمههای «+» و «-» را برای تغییر سطح بزرگنمایی نقشه نمایش میدهد.
- کنترل جابهجایی دکمههای «←»، «→»، «↑»، و «↓» را برای تغییر مرکز نقشه نمایش میدهد.
- کنترلهای چرخش «↺» و «↻» را برای تغییر جهت دوربین نمایش میدهد.
- کنترل کج کردن «^» و «⌄» را برای تغییر کج کردن دوربین نمایش میدهد.
- کنترل قطبنما جهت شمال قطبنما را نشان میدهد و امکان بازنشانی دوربین به جهت شمال را فراهم میکند.
نمونه کد زیر نحوه تغییر رؤیتپذیری کنترلهای میانای کاربر را نشان میدهد:
```kotlin // Add imports import com.google.android.gms.maps3d.UiControlSettings import com.google.android.gms.maps3d.model.CompassControl import com.google.android.gms.maps3d.model.TiltControl import com.google.android.gms.maps3d.model.ZoomControl</p> <p>...</p> <p>val uiControlSettings = googleMap3D.getUiControlSettings()</p> <p>// Show UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( listOf(CompassControl(), ZoomControl(), TiltControl()), UiControlSettings.ControlPlacement.TRAILING )</p> <p>// Hide UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( emptyList(), UiControlSettings.ControlPlacement.TRAILING )