Điều chỉnh camera

Máy ảnh cho phép bạn thay đổi điểm nhìn trên bản đồ của người dùng. Bạn có thể sử dụng các chế độ máy ảnh để kiểm soát hành vi của chế độ xem bản đồ trong khi điều hướng. Để đặt chế độ máy ảnh, hãy gọi một trong các phương thức sau liên kết với máy ảnh:

  • Theo dõi vị trí của tôi (GoogleMap.followMyLocation) — Chế độ camera mặc định để chỉ đường. Chế độ này sẽ đặt máy ảnh vào thiết bị hoặc xe. Trong khi đi theo chỉ dẫn, camera sẽ tự động quay mặt về hướng di chuyển. Khi bật chế độ cài đặt mức độ chi tiết cao (NavigationMapStyle.HIGH_DETAIL), đường viền toà nhà 2D sẽ hiển thị khi mức thu phóng từ 19 trở lên.

  • Đã ghim vào vị trí (GoogleMap.animateCameraGoogleMap.moveCamera) – Chỉnh sửa camera tại một vị trí cụ thể. Khi sử dụng chế độ này, bạn có thể đặt vị trí của máy ảnh cùng với các thuộc tính khác của máy ảnh như góc nghiêng, độ nghiêng, thu phóng, v.v. Khi chế độ xem này được chọn và Trình điều hướng đã được khởi chạy, nút Căn giữa lại sẽ hiển thị.

  • Hiện thông tin tổng quan về tuyến đường (NavigationView.showRouteOverview hoặc SupportNavigationFragment.showRouteOverview) – Hiển thị thông tin tổng quan về tuyến đường còn lại, kéo và thu phóng (nếu cần) để vừa với tuyến đường đó trong chế độ xem bản đồ. Khi chọn thành phần hiển thị này, bạn sẽ thấy nút Căn giữa lại.

Nhấp vào nút Căn giữa lại sẽ đặt máy ảnh ở chế độ followMyLocation.

Theo dõi chế độ vị trí của tôi

Chế độ cài đặt phổ biến nhất cho máy ảnh là đặt máy ảnh vào thiết bị hoặc xe, cho thấy vị trí hiện tại của máy ảnh trong hành trình. Ở chế độ camera này, bạn có thể xem tuyến đường khi ô tô luôn hướng lên màn hình với góc nhìn từ góc (CameraPerspective.TILTED), hoặc có thể xem ô tô đang di chuyển theo hướng bắc (CameraPerspective.TOP_DOWN_NORTH_UP) hoặc có hướng (CameraPerspective.TOP_DOWN_HEADING_UP) luôn ở đầu màn hình).

Đoạn mã sau đây sử dụng góc nhìn TILTED:

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

Đã ghim vào chế độ vị trí

Chế độ Pinned cung cấp cho bạn nhiều quyền kiểm soát nhất đối với máy ảnh. Ở chế độ này, bạn đặt máy ảnh ở một vị trí cụ thể, gán một góc phương vị để định hướng chế độ xem của máy ảnh, thay đổi độ nghiêng để đặt góc xem và đặt mức thu phóng của máy ảnh.

Đoạn mã sau đây minh hoạ một số cách phổ biến để di chuyển camera.

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));

Hiện chế độ tổng quan về tuyến đường

Chế độ cài đặt máy ảnh showRouteOverview sẽ cho thấy toàn bộ hành trình. Đối với các hành trình có nhiều điểm đến, chế độ này sẽ hiển thị phần chưa di chuyển của tuyến đường.

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

Chế độ cài đặt mức độ chi tiết cao

Khi bật chế độ cài đặt mức độ chi tiết cao, đường viền toà nhà 2D sẽ hiển thị khi mức thu phóng của máy ảnh được đặt thành 19 trở lên. Bạn có thể ghi đè mức thu phóng trong quá trình di chuyển bằng cách sử dụng đối tượng FollowMyLocationOptions. Điều này cho phép bạn tăng mức thu phóng đủ để hiển thị đường viền toà nhà 2D khi người dùng đến đích đến.

Ví dụ này bật chế độ cài đặt có độ chi tiết cao:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Ví dụ sau đây ghi đè mức thu phóng của máy ảnh trong quá trình điều hướng. Mức thu phóng được đặt thành 15, đủ cao để hiển thị đường viền toà nhà 2-D.

  googleMap.followMyLocation(
              FollowMyLocationOptions.builder(CameraPerspective.TILTED)
                      .setZoomLevel(15.0f)
                      .build());

Bước tiếp theo

Hãy xem bài viết Tuỳ chỉnh giao diện người dùng Điều hướng để tìm hiểu cách tuỳ chỉnh cách người dùng tương tác với bản đồ của bạn bằng cách xác định thành phần giao diện người dùng tích hợp nào xuất hiện trên bản đồ.