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

Trình kết xuất bản đồ đã nâng cấp có phiên bản 18.2.0 của SDK Bản đồ dành cho Android. Trình kết xuất này mang đến nhiều điểm cải tiến, bao gồm 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:

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

Lịch phát hành

Tháng 3 năm 2024, Google bắt đầu tự động cập nhật tất cả các ứng dụng đã triển khai trên một thiết bị để sử dụng trình kết xuất đã nâng cấp. Quá trình cập nhật tự động sẽ tăng dần trong những tháng tới tuỳ theo thiết bị, nghĩa là thiết bị của người dùng cuối sẽ được cập nhật vào các thời điểm khác nhau trong khoảng thời gian cập nhật.

Bản cập nhật tự động áp dụng cho tất cả ứng dụng chạy trên thiết bị đáp ứng yêu cầu tối thiểu về thiết bị, bất kể ứng dụng sử dụng phiên bản SDK Maps dành cho Android nào.

Tính năng cập nhật tự động không áp dụng cho:

Điều gì xảy ra khi trình kết xuất đồ hoạ mặc định thay đổi?

Trình kết xuất mặc định trở thành trình kết xuất được nâng cấp với việc phát hành phiên bản 18.2.0 của SDK Maps dành cho Android. Để tận dụng trình kết xuất đã nâng cấp, bạn có thể tạo ứng dụng mới hoặc xây dựng lại mọi ứng dụng hiện có bằng cách sử dụng phiên bản SDK mới. Hoặc bạn có thể đợi cho đến khi ứng dụng đã triển khai của bạn được Google tự động cập nhật.

Sau khi cập nhật, ứng dụng của bạn có thể tận dụng tất cả tính năng và lợi ích mới có trong trình kết xuất đã nâng cấp.

Tuy nhiên, nếu bạn quyết định chọn không áp dụng thay đổi này, ứng dụng của bạn sẽ tiếp tục sử dụng trình kết xuất cũ. Xem phần Chọn không sử dụng trình kết xuất đã nâng cấp để tham khảo mã ví dụ về cách chọn không sử dụng.

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

Bản cập nhật tự động áp dụng cho tất cả thiết bị đáp ứng các tiêu chí này, bất kể phiên bản SDK Maps dành cho Android mà ứng dụng sử dụng:

  • 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

Các thiết bị chạy Android 4.4W (API cấp 20) trở xuống hoặc sử dụng Dịch vụ Google Play phiên bản 21.39.13 trở xuống sẽ tiếp tục sử dụng trình kết xuất 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 một cách rõ ràng để sử dụng trình kết xuất cũ trong ứng dụng của mình.

Cách làm như sau:

Mã của bạn phải gọi MapsInitializer.initialize() trước khi bất kỳ MapView, MapFragment hoặc SupportMapFragment nào đượ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 khung hiển thị nội dung của ứng dụng.

Ví dụ sau cho thấy cách gọi MapsInitializer.initialize() để 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;
    }
  }
}