升级版地图渲染程序自 Maps SDK for Android 18.2.0 版起提供。此版本渲染程序带来了许多的改进,包括对云端地图样式设置的支持。
新版渲染程序具有以下优势:
- 提供了云端地图样式设置功能。
- 可进行高级多段线自定义操作。
- 减少了网络负载、处理需求和内存消耗。
- 通过改进手势处理获得更好的动画效果,实现更顺畅的平移和缩放操作。
- 更流畅的过渡和定位清晰的地图标签。
- 更稳定、更出色的用户体验。
发布时间表
2021 年 10 月,Google 开始推出升级版地图渲染程序。届时,您即可选择在应用中使用升级版渲染程序。
随着 Maps SDK for Android 18.2.0 版的发布,Google 已将默认渲染程序从旧版渲染程序改为升级版地图渲染程序。在 18.2.0 版中,构建新应用或重新构建现有应用时,将改为使用升级版地图渲染程序。
更改默认渲染程序后会发生什么?
Maps SDK for Android 18.2.0 版发布后,升级版渲染程序将成为默认渲染程序。如要使用升级版渲染程序,您必须使用新版 SDK 构建新应用或重新构建现有应用。
但是,您也可以选择不升级地图渲染程序。如果您选择不进行升级,您的应用会继续使用旧版渲染程序。 请参阅选择停用升级版渲染程序,了解有关如何选择停用的代码示例。
支持的设备
如要使用升级版地图渲染程序,设备必须满足以下条件:
- Android 5.0(API 级别 21)或更高版本
- 使用的是 Google Play 服务 21.39.14 或更高版本
符合如下任一条件的设备将继续使用旧版渲染程序:使用 Android 4.4W(API 级别 20)及更低版本;或者使用 Google Play 服务 21.39.13 或更低版本。即使您的默认渲染程序更改为升级版地图渲染程序,上述设备也将继续使用旧版渲染程序。
选择停用升级版渲染程序
默认情况下,使用 Maps SDK for Android 18.2.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; } } }