アップグレードされた地図レンダラは、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 以前を使用しているデバイスでは、引き続き従来のレンダラが使われます。
アップグレードされたレンダラの使用をオプトアウトする
必要に応じて、アップグレードされたレンダラの使用を明示的にオプトアウトして、従来のレンダラを使用することができます。
オプトアウトする手順は以下のとおりです。
Maps SDK for Android を v18.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; } } }