アップグレードされた地図レンダラは、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 を使用してビルドされたアプリでは、アップグレードされたレンダラがデフォルトで使用されます。必要に応じて、アップグレードされたレンダラの使用を明示的にオプトアウトして、従来のレンダラを使用することができます。
オプトアウトする手順は以下のとおりです。
MapsInitializer と MapsInitializer.Renderer を明示的にインポートするようにコードを更新します。
MapsInitializer.initialize()
を呼び出してRenderer.LEGACY
を渡すようにコードを更新することで、オプトアウトして従来のレンダラを使用します。OnMapsSdkInitializedCallback を使用して、返されたレンダラのバージョンを特定します。
MapView、MapFragment、または SupportMapFragment が作成される前に、コードで MapsInitializer.initialize()
を呼び出す必要があります。アプリのコンテンツ ビューが設定される前に、Application または Activity の onCreate
内でこれを呼び出すことをおすすめします。
次の例は、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; } } }