升级后的地图渲染程序自 Maps SDK for Android 18.0.0 版起提供。此版本渲染程序带来了许多的改进,包括对云端地图样式设置的支持。我们最早于 2022 年 6 月开始逐步推出新版渲染程序,您可以在其成为 Android 设备的默认渲染程序之前选择试用。
新版渲染程序具有以下优势:
- 提供了云端地图样式设置功能。
- 可进行高级多段线自定义操作。
- 减少网络负载、处理需求和内存消耗。
- 通过改进手势处理获得更好的动画效果,实现更顺畅的平移和缩放操作。
- 更流畅的过渡和定位清晰的地图标签。
- 更稳定、更出色的用户体验。
支持的设备
如要使用新版渲染程序,设备必须满足以下条件:
- Android 5.0(API 级别 21)或更高版本
- 数据存储空间不少于 2 GB
- 使用的是 Google Play 服务 21.39.14 或更高版本
符合如下任一条件的设备将继续使用旧版渲染程序:使用 Android 4.4W(API 级别 20)及更低版本;数据存储空间低于 2 GB;或者使用 Google Play 服务 21.39.13 或更低版本。
如何试用新版渲染程序
如要选择使用新版渲染程序,请按以下步骤操作:
- 更新您的应用依赖项,以使用
com.google.android.gms:play-services-maps:18.0.0
或更高版本。 - 更新您的代码,以明确导入
MapsInitializer
和MapsInitializer.Renderer
。 - 更新您的代码,以调用
MapsInitializer.initialize()
来请求Renderer.LATEST
。 - 使用
OnMapsSdkInitializedCallback
确定返回哪个版本的渲染程序。
您的代码必须在创建任何 MapView
、MapFragment
或 SupportMapFragment
前调用 MapsInitializer.initialize()
。我们建议在 onCreate
中针对应用的 Application
或 Activity
进行该项调用,然后再设置其内容视图。
以下示例展示了如何调用 MapsInitializer.initialize()
来请求渲染程序的版本。
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.LATEST, 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; } } }
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.LATEST, 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.") } } }