המשתמשים יכולים לשלוט בזום, בהטיה, במיקום ובסיבוב של המצלמה באמצעות תנועות במפה. אפשר גם להגדיר את המצלמה באופן פרוגרמטי.

מיקום המצלמה
תצוגת המפה מעוצבת כמו מצלמה שמביטה בנקודה מסוימת במרחב. המיקום והכיוון של המצלמה מוגדרים לפי קואורדינטות של קו רוחב/קו אורך/גובה (מוגדרים כ "מרכז", המקום שאליו המצלמה מכוונת), כיוון, הטיה, טווח וגלגול.
מרכז (קו רוחב, קו אורך, גובה)
המאפיין center מגדיר את הנקודה הספציפית במרחב התלת-ממדי שהמצלמה צופה בה. כדי לציין את המיקום, משתמשים במחלקה LatLngAltitude, שמשלבת ערכים של קו רוחב, קו אורך וגובה. כך אפשר למקם את נקודת המוקד של המצלמה בתלת-ממד.
קו הרוחב יכול להיות בין -90 ל-90 מעלות, כולל. קו האורך נע בין -180 ל-180 מעלות, כולל. הגובה מצוין במטרים, והאופן שבו הגובה מפורש נקבע על ידי altitudeMode של המצלמה (AltitudeMode.ABSOLUTE כברירת מחדל, AltitudeMode.RELATIVE_TO_GROUND או AltitudeMode.RELATIVE_TO_MESH).
כותרת
הכיוון מציין את כיוון המצפן של המפה, שנמדד במעלות בכיוון השעון מהצפון האמיתי. צפון תואם ל-0 מעלות, מזרח ל-90 מעלות, דרום ל-180 מעלות ומערב ל-270 מעלות.
הטיה
ההטיה מציינת את זווית המצלמה ביחס לציר האנכי, ונמדדת במעלות. הטיה של 0 מעלות פירושה שהמצלמה מכוונת ישר למטה לכיוון כדור הארץ (נאדיר). הטיה של 90 מעלות פירושה שהמצלמה מופנית אופקית לכיוון שצוין בכיוון.
טווח
הטווח מגדיר את המרחק במטרים בין מיקום המצלמה לבין מרכז המפה. הטווח יכול לנוע בין אפס מטרים (תקריב מאוד קרוב) עד 63 מיליון מטרים, מה שמאפשר תצוגות מקרוב מאוד ועד לפרספקטיבה גלובלית אמיתית. המאפיין הזה קובע עד כמה המפה תהיה "מרוחקת" או "קרובה".
הטלת קובייה
הערך roll מגדיר את זווית המצלמה ביחס לאופק, במעלות. אפשר להשתמש בפרמטר הזה כדי ליצור אפקטים כמו הטיה במהלך סימולציות טיסה או אפילו גלגול מלא, שבו המצלמה מסתובבת סביב ציר הצפייה שלה.
שליטה במצלמה
בדוגמת הקוד הבאה אפשר לראות איך לשלוט ב-Camera באופן פרוגרמטי על ידי קריאה ל-method 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
}
)
רכיבים אינטראקטיביים
בנוסף לתנועות הרגילות, Maps 3D SDK ל-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
...
val uiControlSettings = googleMap3D.getUiControlSettings()
// Show UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
listOf(CompassControl(), ZoomControl(), TiltControl()),
UiControlSettings.ControlPlacement.TRAILING
)
// Hide UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
emptyList(),
UiControlSettings.ControlPlacement.TRAILING
)