新しい地図レンダラ

アップグレードされた地図レンダラは、Maps SDK for Android のバージョン 18.2.0 以降でご利用いただけます。このレンダラでは、Cloud ベースのマップのスタイル設定のサポートなど、多くの改良が加えられています。

新しいレンダラには、次のメリットがあります。

  • Cloud ベースのマップのスタイル設定機能を利用可能。
  • ポリラインの高度なカスタマイズを使用可能。
  • ネットワーク負荷、処理負荷、メモリ使用量の軽減。
  • 操作処理の改良により、アニメーションの質が向上し、パンとズームがより滑らかに。
  • 画面の転換をより滑らかにし、地図ラベルの位置もさらに鮮明に。
  • 安定性とユーザー エクスペリエンスの向上。

自動更新ステータス

Google は 2024 年 3 月、アップグレードされたレンダラが使われるように、デプロイ済みのすべてのアプリの自動更新を開始しました。この自動更新は、アプリで使われている Maps SDK for Android のバージョンを問わず、デバイスの最小要件を満たすデバイスで実行されている全アプリに適用され、ロールアウトが完了しました。

この自動更新は、次のアプリには適用されませんでした。

  • アップグレードされたレンダラを使うように、すでに更新されていたアプリ。

  • このアップグレードを明示的にオプトアウトしていたアプリ。

  • デバイスの最小要件を満たさないデバイスで実行されているアプリ。

サポートされているデバイス

アップグレードされた地図レンダラを使用するには、次の条件を満たすデバイスが必要です。

  • Android 5.0(API レベル 21)以降
  • Google Play 開発者サービス バージョン 21.39.14 以降を使用

Android 4.4W(API レベル 20)以前を搭載しているデバイスや、Google Play 開発者サービスのバージョン 21.39.13 以前を使用しているデバイスでは、引き続き従来のレンダラが使われます。

アップグレードされたレンダラの使用をオプトアウトする

必要に応じて、アップグレードされたレンダラの使用を明示的にオプトアウトして、従来のレンダラを使用することができます。

オプトアウトする手順は以下のとおりです。

MapViewMapFragment、または SupportMapFragment が作成される前に、コードで MapsInitializer.initialize() を呼び出す必要があります。アプリのコンテンツ ビューが設定される前に、Application または ActivityonCreate 内でこれを呼び出すことをおすすめします。

次の例は、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;
    }
  }
}