新版地图渲染程序

升级版地图渲染程序自 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 或更低版本。

选择停用升级版渲染程序

如有必要,您可以明确选择停用升级版渲染程序,以便在应用中使用旧版渲染程序。

如要选择停用,请执行以下操作:

您的代码必须在创建任何 MapViewMapFragmentSupportMapFragment 前调用 MapsInitializer.initialize()。我们建议在 onCreate 中针对应用的 ApplicationActivity 进行该项调用,然后再设置其内容视图。

以下示例展示了如何调用 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;
    }
  }
}