Điều chỉnh camera

Máy ảnh cho phép bạn thay đổi điểm nhìn của người dùng trên bản đồ. 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ế độ máy ảnh mặc định để chỉ đường. Chế độ này đặt máy ảnh thành thiết bị hoặc xe. Trong khi bạn đi theo chỉ dẫn, máy ảnh sẽ tự động hướng về hướng di chuyển. Khi bạn bật chế độ cài đặt chi tiết cao (NavigationMapStyle.HIGH_DETAIL), đường viền của toà nhà 2D sẽ hiển thị khi mức thu phóng là 19 trở lên.

  • Ghim vào vị trí (GoogleMap.animateCameraGoogleMap.moveCamera) – Sửa máy ảnh ở một vị trí cụ thể. Khi sử dụng chế độ này, bạn có thể đặt vị trí máy ảnh cùng với các thuộc tính máy ảnh khác như hướ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 Đặt lại tâm sẽ xuất hiện.

  • Hiển thị 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, xoay và thu phóng khi cần để vừa với tuyến đường trong chế độ xem bản đồ. Khi bạn chọn chế độ xem này, nút Căn giữa lại sẽ xuất hiện.

Khi nhấp vào nút Re-center (Đặt lại tâm), máy ảnh sẽ chuyển sang chế độ followMyLocation.

Chế độ theo dõi vị trí của tôi

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

Đoạn mã sau đây sử dụng phối cảnh 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ể, chỉ định góc phương vị để định hướng chế độ xem của máy ảnh, thay đổi độ nghiêng để đặt góc nhìn 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 máy ảnh.

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 thị chế độ tổng quan về tuyến đường

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

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

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

Khi bạn bật chế độ cài đặt chi tiết cao, đường viền của toà nhà 2D sẽ hiển thị khi bạn đặt mức thu phóng của máy ảnh thành 19 trở lên. Bạn có thể ghi đè mức thu phóng trong khi điều hướng 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 của toà nhà 2D khi người dùng đến gần đích đến.

Ví dụ này bật chế độ cài đặt 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 của tòa nhà 2D.

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

Bước tiếp theo

Hãy xem phần 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 đồ.