Trình kết xuất bản đồ mới

Trình kết xuất bản đồ được nâng cấp có sẵn kể từ phiên bản 18.2.0 của SDK Bản đồ dành cho Android. Trình kết xuất đồ hoạ này mang đến nhiều cải tiến, bao gồm cả tính năng hỗ trợ Định kiểu bản đồ dựa trên đám mây.

Trình kết xuất mới mang lại các lợi ích sau:

  • Định kiểu bản đồ trên đám mây các tính năng mới khả dụng với trình kết xuất đồ hoạ mới.
  • Tuỳ chỉnh đường đa tuyến nâng cao có sẵn với trình kết xuất mới.
  • Giảm tải mạng, nhu cầu xử lý và mức sử dụng bộ nhớ.
  • Cải thiện khả năng xử lý cử chỉ để cải thiện hiệu ứng động, cộng với thao tác kéo và thu phóng.
  • Chuyển đổi linh hoạt hơn và nhãn bản đồ được định vị rõ ràng.
  • Trải nghiệm người dùng ổn định và tốt hơn.

Trạng thái cập nhật tự động

Tháng 3 năm 2024, Google bắt đầu tự động cập nhật tất cả ứng dụng đã triển khai để sử dụng trình kết xuất đồ hoạ được nâng cấp. Tính năng tự động cập nhật đã được áp dụng cho tất cả ứng dụng chạy trên các thiết bị đáp ứng các yêu cầu tối thiểu đối với thiết bị, bất kể ứng dụng sử dụng phiên bản SDK Maps cho Android nào. Quá trình triển khai này đã hoàn tất.

Các bản cập nhật tự động không áp dụng cho:

Thiết bị được hỗ trợ

Để sử dụng trình kết xuất bản đồ nâng cấp, thiết bị phải đáp ứng các tiêu chí sau:

  • Android 5.0 (API cấp 21) trở lên
  • Sử dụng Dịch vụ Google Play phiên bản 21.39.14 trở lên

Thiết bị chạy Android 4.4W (API cấp 20) trở xuống hoặc sử dụng Google Play các dịch vụ phiên bản 21.39.13 trở xuống tiếp tục sử dụng trình kết xuất đồ hoạ cũ.

Chọn không sử dụng trình kết xuất đã nâng cấp

Nếu cần, bạn có thể chọn không sử dụng trình kết xuất đã nâng cấp để sử dụng trình kết xuất cũ trong ứng dụng.

Cách làm như sau:

Mã của bạn phải gọi MapsInitializer.initialize() trước bất kỳ MapView, MapFragment, hoặc SupportMapFragment đã được tạo. Bạn nên gọi phương thức này trong onCreate cho Ứng dụng hoặc Hoạt động của ứng dụng trước khi đặt chế độ xem nội dung.

Ví dụ sau đây trình bày cách gọi MapsInitializer.initialize() đến chọn không sử dụng trình kết xuất bản đồ cũ.

Kotlin

import com.google.android.gms.maps.MapsInitializer
import com.google.android.gms.maps.MapsInitializer.Renderer
import com.google.android.gms.maps.OnMapsSdkInitializedCallback

internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {
  override fun onCreate() {
    super.onCreate()
    MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)
  }

  override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {
    when (renderer) {
      Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.")
      Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.")
    }
  }
}

Java

import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.MapsInitializer.Renderer;
import com.google.android.gms.maps.OnMapsSdkInitializedCallback;

class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {

  @Override
  public void onCreate() {
    super.onCreate();
    MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);
  }

  @Override
  public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {
    switch (renderer) {
      case LATEST:
        Log.d("MapsDemo", "The latest version of the renderer is used.");
        break;
      case LEGACY:
        Log.d("MapsDemo", "The legacy version of the renderer is used.");
        break;
    }
  }
}