Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trình kết xuất bản đồ nâng cấp có trong phiên bản 18.2.0 của Maps SDK cho Android. Trình kết xuất này có nhiều điểm cải tiến, bao gồm cả việc hỗ trợ tính năng tạo kiểu cho bản đồ dựa trên đám mây.
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ỉ để tạo ảnh động đẹp hơn, đồng thời thao tác lia và thu phóng mượt mà hơn.
Chuyển đổi mượt mà hơn và nhãn bản đồ được đặt ở vị trí rõ ràng.
Trải nghiệm người dùng ổn định và hoàn thiện hơn.
Trạng thái cập nhật tự động
Vào 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 để sử dụng trình kết xuất được nâng cấp. Các bản cập nhật tự động đã được áp dụng cho tất cả ứng dụng chạy trên những thiết bị đáp ứng yêu cầu tối thiểu về thiết bị, bất kể ứng dụng dùng phiên bản nào của Maps SDK cho Android. Quá trình triển khai này hiện đã hoàn tất.
Các bản cập nhật tự động không áp dụng cho:
Các ứng dụng đã cập nhật để sử dụng trình kết xuất được nâng cấp.
Để 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
Các thiết bị sử dụng 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 để sử dụng trình kết xuất cũ trong ứng dụng của mình.
Cách làm như sau:
Nâng cấp Maps SDK cho Android lên phiên bản 18.0 trở lên.
Ví dụ sau đây cho biết cách gọi MapsInitializer.initialize() để chọn không sử dụng trình kết xuất bản đồ cũ.
Kotlin
importcom.google.android.gms.maps.MapsInitializerimportcom.google.android.gms.maps.MapsInitializer.Rendererimportcom.google.android.gms.maps.OnMapsSdkInitializedCallbackinternalclassMapRendererOptInApplication:Application(),OnMapsSdkInitializedCallback{overridefunonCreate(){super.onCreate()MapsInitializer.initialize(applicationContext,Renderer.LEGACY,this)}overridefunonMapsSdkInitialized(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
importcom.google.android.gms.maps.MapsInitializer;importcom.google.android.gms.maps.MapsInitializer.Renderer;importcom.google.android.gms.maps.OnMapsSdkInitializedCallback;classMapRendererOptInApplicationextendsApplicationimplementsOnMapsSdkInitializedCallback{@OverridepublicvoidonCreate(){super.onCreate();MapsInitializer.initialize(getApplicationContext(),Renderer.LEGACY,this);}@OverridepublicvoidonMapsSdkInitialized(MapsInitializer.Rendererrenderer){switch(renderer){caseLATEST:Log.d("MapsDemo","The latest version of the renderer is used.");break;caseLEGACY:Log.d("MapsDemo","The legacy version of the renderer is used.");break;}}}
[null,null,["Cập nhật lần gần đây nhất: 2025-08-31 UTC."],[[["\u003cp\u003eThe Maps SDK for Android now features an upgraded map renderer with cloud-based styling and improved performance.\u003c/p\u003e\n"],["\u003cp\u003eAutomatic updates to the new renderer are complete for eligible apps, enhancing user experience with smoother interactions and better visuals.\u003c/p\u003e\n"],["\u003cp\u003eDevices require Android 5.0 (API level 21) or later and Google Play services version 21.39.14 or later to use the upgraded renderer.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can opt out of the upgraded renderer and use the legacy renderer, although the legacy renderer is deprecated and will be decommissioned in March 2025.\u003c/p\u003e\n"],["\u003cp\u003eOpting out requires explicit initialization with \u003ccode\u003eMapsInitializer\u003c/code\u003e and specifying \u003ccode\u003eRenderer.LEGACY\u003c/code\u003e before creating any map views or fragments.\u003c/p\u003e\n"]]],["The Maps SDK for Android version 18.2.0 introduced an upgraded map renderer, which was automatically rolled out to all applicable apps by March 2024. This new renderer offers cloud-based styling, advanced polyline customization, reduced resource usage, and improved performance. Devices must use Android 5.0+ and Google Play services 21.39.14+. Apps can opt-out of the upgrade to the legacy renderer by upgrading the Maps SDK to v18.0 or greater, and calling `MapsInitializer.initialize()` with `Renderer.LEGACY`. The legacy renderer will be decommissioned in March 2025.\n"],null,["An upgraded map renderer is available as of version 18.2.0 of the\nMaps SDK for Android. This renderer brings many improvements, including support for\nCloud-based maps styling.\n\nThe new renderer provides the following benefits:\n\n- [Cloud-based maps styling](/maps/documentation/android-sdk/cloud-based-map-styling) features are available with the new renderer.\n- [Advanced Polyline Customizations](/maps/documentation/android-sdk/shapes#polyline-customization) are available with the new renderer.\n- Reduced network load, processing demand, and memory consumption.\n- Improved gesture handling for better animations, plus smoother panning and zooming.\n- More fluid transitions and clearly positioned map labels.\n- A more stable and improved user experience.\n\nAutomatic update status\n\nIn March of 2024, Google began automatically updating all deployed apps to use\nthe upgraded renderer. Automatic updates have been applied to all apps running\non devices that meet the [minimum device requirements](#supported-devices),\nregardless of the version of the Maps SDK for Android used by the app. This rollout\nis now complete.\n\nThe automatic updates did not apply to:\n\n- Apps that have already updated to use the upgraded renderer.\n\n- Apps that have explicitly [opted out](#opt-out) of the upgrade.\n\n- Apps running on devices that don't meet the [minimum device\n requirements](#supported-devices).\n\nSupported devices\n\nTo use the upgraded map renderer, devices must meet these criteria:\n\n- Android 5.0 (API level 21) or later\n- Using Google Play services version 21.39.14 or later\n\nDevices using Android 4.4W (API level 20) and earlier or using Google Play\nservices versions 21.39.13 or earlier continue to use the legacy renderer.\n\nOpt-out of using the upgraded renderer\n\nIf necessary, you can explicitly opt-out of using the upgraded renderer to use\nthe legacy renderer in your app.\n| **Important:** The legacy renderer is deprecated and is scheduled for decommissioning in April 2025. Follow the legacy renderer's decommissioning progress in public issue [404999856](https://issuetracker.google.com/issues/404999856). After the legacy renderer is decommissioned, you will no longer be able to opt-out of using the upgraded renderer. However, apps running on devices that don't meet the [minimum requirements](#supported-devices) for the new renderer will continue to function with the legacy renderer.\n\nTo opt-out:\n\n- [Upgrade](/maps/documentation/android-sdk/versions) Maps SDK for Android to\n v18.0 or greater.\n\n- Update your code to explicitly import [MapsInitializer](/android/reference/com/google/android/gms/maps/MapsInitializer)\n and\n [MapsInitializer.Renderer](/android/reference/com/google/android/gms/maps/MapsInitializer.Renderer).\n\n- Update your code to call\n [`MapsInitializer.initialize()`](/android/reference/com/google/android/gms/maps/MapsInitializer#initialize(android.content.Context,%20com.google.android.gms.maps.MapsInitializer.Renderer,%20com.google.android.gms.maps.OnMapsSdkInitializedCallback)),\n passing `Renderer.LEGACY` to opt-out and use the legacy renderer.\n\n- Use [OnMapsSdkInitializedCallback](/android/reference/com/google/android/gms/maps/OnMapsSdkInitializedCallback)\n to determine which version of the renderer was returned.\n\nYour code must call\n[`MapsInitializer.initialize()`](/android/reference/com/google/android/gms/maps/MapsInitializer)\nbefore any\n[MapView](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapView),\n[MapFragment](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapFragment),\nor\n[SupportMapFragment](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/SupportMapFragment)\nhas been created. We recommend calling this in `onCreate` for your app's\n[Application](https://developer.android.com/reference/android/app/Application#onCreate()),\nor\n[Activity](https://developer.android.com/reference/android/app/Activity#onCreate(android.os.Bundle,%20android.os.PersistableBundle)),\nbefore its content view is set.\n\nThe following example shows how to call `MapsInitializer.initialize()` to\nopt-out to use the legacy map renderer. \n\nKotlin \n\n```kotlin\nimport com.google.android.gms.maps.MapsInitializer\nimport com.google.android.gms.maps.MapsInitializer.Renderer\nimport com.google.android.gms.maps.OnMapsSdkInitializedCallback\n\ninternal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {\n override fun onCreate() {\n super.onCreate()\n MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)\n }\n\n override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {\n when (renderer) {\n Renderer.LATEST -\u003e Log.d(\"MapsDemo\", \"The latest version of the renderer is used.\")\n Renderer.LEGACY -\u003e Log.d(\"MapsDemo\", \"The legacy version of the renderer is used.\")\n }\n }\n}\n```\n\nJava \n\n```java\nimport com.google.android.gms.maps.MapsInitializer;\nimport com.google.android.gms.maps.MapsInitializer.Renderer;\nimport com.google.android.gms.maps.OnMapsSdkInitializedCallback;\n\nclass MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {\n\n @Override\n public void onCreate() {\n super.onCreate();\n MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);\n }\n\n @Override\n public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {\n switch (renderer) {\n case LATEST:\n Log.d(\"MapsDemo\", \"The latest version of the renderer is used.\");\n break;\n case LEGACY:\n Log.d(\"MapsDemo\", \"The legacy version of the renderer is used.\");\n break;\n }\n }\n}\n```"]]