調整攝影機
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
您可以透過攝影機變更使用者的地圖視角。你可以使用攝影機模式,控制導航期間的地圖檢視行為。如要設定攝影機模式,請呼叫與攝影機相關聯的下列其中一種方法:
追蹤我的位置 (GoogleMap.followMyLocation
):導航的預設攝影機模式。這個模式會將攝影機設為裝置或車輛。
導航時,攝影機會自動朝向行進方向。
固定在特定位置 (GoogleMap.animateCamera
和 GoogleMap.moveCamera
):將攝影機固定在特定位置。使用這個模式時,您可以設定攝影機位置,以及航向、傾斜、縮放等其他攝影機屬性。選取這個檢視畫面並初始化 Navigator 後,就會顯示「重新置中」按鈕。
顯示路線總覽 (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();
下一步
請參閱「自訂導航使用者介面」,瞭解如何決定要在地圖上顯示哪些內建 UI 元件,藉此自訂使用者與地圖的互動方式。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\u003cp\u003eThe Navigation SDK offers three camera modes: \u003ccode\u003efollowMyLocation\u003c/code\u003e, \u003ccode\u003ePinned to location\u003c/code\u003e, and \u003ccode\u003eshowRouteOverview\u003c/code\u003e to control the user's viewpoint of the map during navigation.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003efollowMyLocation\u003c/code\u003e mode centers the map on the user's location and automatically adjusts during navigation, while \u003ccode\u003ePinned to location\u003c/code\u003e mode fixes the camera at a specific location with customizable properties.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eshowRouteOverview\u003c/code\u003e mode displays the entire route or remaining route, adjusting the view to fit the route on the screen.\u003c/p\u003e\n"],["\u003cp\u003eYou can customize the camera's perspective, zoom level, bearing, and tilt to enhance the user experience.\u003c/p\u003e\n"],["\u003cp\u003eHigh detail setting, when enabled, displays 2-D building outlines when the zoom level is 19 or higher, which can be further customized using \u003ccode\u003eFollowMyLocationOptions\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Adjust the camera\n\nThe camera allows you to change the user's viewpoint of the map. You can\nuse camera modes to control the behavior of the map view during navigation.\nTo set the camera mode, call one of the following methods associated\nwith the camera:\n\n- Follow my location (`GoogleMap.followMyLocation`) --- The default camera\n mode for navigation. This mode sets the camera to the device or vehicle.\n During navigation, the camera automatically faces the direction of travel.\n\n- Pinned to location (`GoogleMap.animateCamera` and `GoogleMap.moveCamera`)\n --- Fixes the camera at a specific location. When using this mode, you can\n set the camera location along with other camera properties like bearing, tilt,\n zoom, etc. When this view is selected and the Navigator has been initialized,\n the **Re-center** button is visible.\n\n- Show route overview (`NavigationView.showRouteOverview` or\n `SupportNavigationFragment.showRouteOverview`) --- Displays an overview\n of the remaining route (up to the next 45 minutes of driving time), panning and zooming as needed to fit the route\n into the map view. When this view is selected, the **Re-center** button\n is visible.\n\nClicking the **Re-center** button sets the camera to `followMyLocation` mode.\n\nFollow my location mode\n-----------------------\n\nThe most common camera setting is to have the camera set to the\ndevice or vehicle, showing its current position within the journey. In\nthis camera mode, you can view the route with the car always headed up\nthe screen with an angled perspective (`CameraPerspective.TILTED`), or\nyou can see the car traveling with north (`CameraPerspective.TOP_DOWN_NORTH_UP`)\nor with heading (`CameraPerspective.TOP_DOWN_HEADING_UP)` always at the top of\nthe screen.\n\nThe following code fragment uses the `TILTED` perspective: \n\n // Set the camera to follow the device (vehicle):\n mNavFragment.getMapAsync(googleMap -\u003e googleMap.followMyLocation(CameraPerspective.TILTED))\n\nPinned to location mode\n-----------------------\n\nThe `Pinned` mode provides you with the most control of the\ncamera. In this mode, you place the camera in a specific location, assign\na bearing to orient the camera view, change the tilt to set the viewing angle, and\nset the camera's zoom level.\n\nThe following code snippet demonstrates some of the common ways to move the\ncamera. \n\n private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);\n private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);\n\n private GoogleMap map;\n ... // Obtain the map from a SupportNavigationFragment or NavigationView.\n\n // Move the camera instantly to Sydney with a zoom of 15.\n map.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 15));\n\n // Zoom in, animating the camera.\n map.animateCamera(CameraUpdateFactory.zoomIn());\n\n // Zoom out to zoom level 10, animating with a duration of 2 seconds.\n map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);\n\n // Construct a CameraPosition focusing on Mountain View and animate the camera to that position.\n CameraPosition cameraPosition = new CameraPosition.Builder()\n .target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View\n .zoom(17) // Sets the zoom\n .bearing(90) // Sets the orientation of the camera to east\n .tilt(30) // Sets the tilt of the camera to 30 degrees\n .build(); // Creates a CameraPosition from the builder\n map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));\n\nShow route overview mode\n------------------------\n\nThe `showRouteOverview` camera setting displays the entire journey.\nFor multiple-destination journeys, this mode displays the untraveled\nportion of the route. \n\n // Place the camera to see the remaining route:\n mNavFragment.showRouteOverview();\n\nNext step\n---------\n\nSee [Customize the Navigation UI](/maps/documentation/navigation/android-sdk/controls)\nto learn how to customize the way in which users interact with your map\nby determining which of the built-in UI components appear on the map."]]