התאמת המצלמה

המצלמה מאפשרת לכם לשנות את נקודת המבט של המשתמש במפה. אתם יכולים להשתמש במצבי מצלמה כדי לשלוט בהתנהגות של תצוגת המפה במהלך הניווט. כדי להגדיר את מצב המצלמה, קוראים לאחת מהשיטות הבאות שמשויכות למצלמה:

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

  • מוצמדת למיקום (GoogleMap.animateCamera ו-GoogleMap.moveCamera) — המצלמה קבועה במיקום ספציפי. כשמשתמשים במצב הזה, אפשר להגדיר את מיקום המצלמה יחד עם מאפיינים אחרים של המצלמה, כמו כיוון, הטיה, זום וכו'. כשהתצוגה הזו נבחרת והניווט מאותחל, הכפתור מרכוז מחדש מוצג.

  • הצגת סקירה כללית של המסלול (NavigationView.showRouteOverview או SupportNavigationFragment.showRouteOverview) – מוצגת סקירה כללית של המסלול שנותר (עד 45 דקות של זמן נסיעה), עם הזזה ושינוי מרחק התצוגה לפי הצורך כדי להתאים את המסלול לתצוגת המפה. כשהתצוגה הזו נבחרת, הכפתור מרכוז מחדש מוצג.

לחיצה על הלחצן מרכוז מחדש מעבירה את המצלמה למצב followMyLocation.

מעקב אחרי מצב המיקום שלי

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

בקטע הקוד הבא נעשה שימוש בפרספקטיבה TILTED:

// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))

הוצמד למצב מיקום

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

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

private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);

private GoogleMap map;
... // Obtain the map from a SupportNavigationFragment or NavigationView.

// Move the camera instantly to Sydney with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 15));

// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomIn());

// Zoom out to zoom level 10, animating with a duration of 2 seconds.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

// Construct a CameraPosition focusing on Mountain View and animate the camera to that position.
CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(MOUNTAIN_VIEW)      // Sets the center of the map to Mountain View
    .zoom(17)                   // Sets the zoom
    .bearing(90)                // Sets the orientation of the camera to east
    .tilt(30)                   // Sets the tilt of the camera to 30 degrees
    .build();                   // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

הצגת מצב סקירה כללית של המסלול

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

// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();

השלב הבא

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