הגדרת אמצעי הבקרה של המצלמה

בחירת פלטפורמה: Android iOS JavaScript

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

תרשים שממחיש את מודל המצלמה התלת-ממדית

מיקום המצלמה

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

מרכז (קו רוחב, קו אורך, גובה)

המאפיין 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</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 )