升级版地图渲染程序自 Maps SDK for Android 18.2.0 版起提供。此版本渲染程序带来了许多的改进,包括对云端地图样式设置的支持。
新版渲染程序具有以下优势:
- 提供了云端地图样式设置功能。
- 可进行高级多段线自定义操作。
- 减少了网络负载、处理需求和内存消耗。
- 通过改进手势处理获得更好的动画效果,实现更顺畅的平移和缩放操作。
- 更流畅的过渡和定位清晰的地图标签。
- 更稳定、更出色的用户体验。
发布时间表
2024 年 3 月,Google 开始自动更新设备上所有已部署的应用,以便使用升级版渲染程序。自动更新将在未来几个月内根据具体设备情况逐步进行,这意味着最终用户设备将在更新期间的不同时间进行更新。
自动更新适用于在符合最低设备要求的设备上运行的所有应用,无论应用使用的是哪个版本的 Maps SDK for Android。
自动更新不适用于以下应用:
更改默认渲染程序后会发生什么?
Maps SDK for Android 18.2.0 版发布后,升级版渲染程序将成为默认渲染程序。如要使用升级版渲染程序,您可以使用新版 SDK 构建新应用或重新构建任何现有应用。或者,您也可以等到 Google 自动更新您部署的应用。
升级后,您的应用就可以利用升级版渲染程序中提供的所有新功能和优势。
但是,如果您决定选择不进行更改,您的应用将继续使用旧版渲染程序。请参阅选择停用升级版渲染程序,了解有关如何选择停用的代码示例。
支持的设备
自动更新适用于符合以下条件的所有设备,无论应用使用的是哪个版本的 Maps SDK for Android:
- Android 5.0(API 级别 21)或更高版本
- 使用的是 Google Play 服务 21.39.14 或更高版本
符合如下任一条件的设备将继续使用旧版渲染程序:使用 Android 4.4W(API 级别 20)及更低版本;或者使用 Google Play 服务 21.39.13 或更低版本。
选择停用升级版渲染程序
如有必要,您可以明确选择停用升级版渲染程序,以便在应用中使用旧版渲染程序。
如要选择停用,请执行以下操作:
将 Maps SDK for Android 升级为 v18.0 或更高版本。
更新您的代码,以明确导入 MapsInitializer 和 MapsInitializer.Renderer。
更新您的代码,调用
MapsInitializer.initialize()
并传递Renderer.LEGACY
来停用升级版渲染程序,继续使用旧版渲染程序。使用 OnMapsSdkInitializedCallback 确定返回哪个版本的渲染程序。
您的代码必须在创建任何 MapView、MapFragment 或 SupportMapFragment 前调用 MapsInitializer.initialize()
。我们建议在 onCreate
中针对应用的 Application 或 Activity 进行该项调用,然后再设置其内容视图。
以下示例展示了如何调用 MapsInitializer.initialize()
来停用升级版渲染程序,继续使用旧版渲染程序。
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; } } }