自 Maps SDK for Android 18.2.0 版起,您可以使用升級版地圖轉譯器。這個轉譯器提供許多改善功能,包括支援雲端式地圖樣式設定。
新版轉譯器具備下列優點:
- 新版轉譯器支援雲端式地圖樣式設定功能。
- 新版轉譯器支援進階折線自訂功能。
- 降低網路負載、處理需求和記憶體使用量。
- 改善手勢處理功能來提高動畫品質,以及使平移和縮放更順暢。
- 更流暢的轉場效果,以及位置明確的地圖標籤。
- 更穩定、更優質的使用者體驗。
推出時間表
Google 於 2021 年 10 月開始推出升級版地圖轉譯器。推出後,您可以選擇是否要開始在應用程式中使用升級版轉譯器。
隨著 Maps SDK for Android 18.2.0 版推出,Google 將預設轉譯器從舊版轉譯器改為升級版地圖轉譯器。在 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,或是使用 Google Play 服務 21.39.13 以下版本的裝置,即使在預設轉譯器變更為升級版地圖轉譯器後,仍會繼續使用舊版轉譯器。
停用升級版轉譯器
根據預設,透過 Maps SDK for Android 18.2.0 版建立的應用程式會使用升級版轉譯器。您可以視需要直接停用升級版轉譯器,在應用程式中繼續使用舊版轉譯器。
如要停用,請按照下列步驟操作:
更新程式碼,直接匯入 MapsInitializer 和 MapsInitializer.Renderer。
更新程式碼,呼叫
MapsInitializer.initialize()
,並傳遞Renderer.LEGACY
以停用升級版轉譯器,改為使用舊版轉譯器。使用 OnMapsSdkInitializedCallback 來確認傳回的轉譯器版本。
您的程式碼必須先呼叫 MapsInitializer.initialize()
,再建立任何 MapView、MapFragment 或 SupportMapFragment。建議您針對應用程式的 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; } } }