新版地图渲染程序

升级后的地图渲染程序自 Maps SDK for Android 18.0.0 版起提供。 此版本渲染程序带来了许多的改进,包括对云端地图样式设置的支持。最早于 2022 年 6 月开始,我们将逐步推出新版渲染程序,您可以在其成为 Android 设备的默认渲染程序之前选择试用。

新版渲染程序提供了以下优势:

  • 新版渲染程序提供了云端地图样式设置
  • 减少网络负载、处理需求和内存消耗。
  • 改进了手势处理,以获得更好的动画效果,实现更顺畅的平移和缩放操作。
  • 更流畅的过渡和定位清晰的地图标签。
  • 更稳定、更出色的用户体验。

支持的设备

如要使用新版渲染程序,设备必须满足以下条件:

  • Android 5.0(API 级别 22)或更高版本
  • 2 GB 或更多数据存储空间
  • 使用的是 Google Play 服务 21.39.14 或更高版本

如果设备使用的是 Android 21 及更低版本、数据存储空间不到 2 GB,或者使用的是 Google Play 服务 21.39.13 或更低版本,则将继续使用旧版渲染程序。

如何试用新版渲染程序

如要选择使用新版渲染程序,请按以下步骤操作:

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

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