新しい地図レンダラ

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

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

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

ロールアウト スケジュール

2021 年 10 月、Google はアップグレードされた地図レンダラのロールアウトを開始しました。新しいレンダラをオプトインすると、アプリで使用を開始することができます。

Maps SDK for Android のバージョン 18.2.0 のリリースに伴い、デフォルトのレンダラが従来のレンダラからアップグレードされた地図レンダラに切り替えられました。バージョン 18.2.0 では、新しいアプリのビルド時または既存アプリの再ビルド時に、アップグレードされた地図レンダラが使用されます。

デフォルトのレンダラの変更による影響

Maps SDK for Android のバージョン 18.2.0 のリリースに伴い、デフォルトのレンダラはアップグレードされたレンダラになります。アップグレードされたレンダラを利用するには、新しい SDK バージョンを使用して新しいアプリをビルドするか、既存アプリを再ビルドする必要があります。

ただし、この変更をオプトアウトすることもできます。オプトアウトすると、引き続き従来のレンダラが使用されます。オプトアウトするためのコードの例については、アップグレードされたレンダラの使用をオプトアウトするをご覧ください。

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

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

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

Android 4.4W(API レベル 20)以前を搭載したデバイス、データ ストレージが 2 GB 未満のデバイス、バージョン 21.39.13 以前の Google Play 開発者サービスのいずれかを使用している場合、デフォルトのレンダラがアップグレードされた地図レンダラに変更された後も、引き続き従来のレンダラが使用されます。

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

Maps SDK for Android のバージョン 18.2.0 を使用してビルドされたアプリでは、アップグレードされたレンダラがデフォルトで使用されます。必要に応じて、アップグレードされたレンダラの使用を明示的にオプトアウトして、従来のレンダラを使用することができます。

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

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;
    }
  }
}