自 Maps SDK for Android 18.0.0 版起,您可以使用升級版地圖轉譯器。這個轉譯器提供許多改善功能,包括支援雲端式地圖樣式。新版轉譯器最快將從 2022 年 6 月起逐步推出,在其成為 Android 裝置的預設轉譯器前,您可以選擇試用。
新版轉譯器具備下列優點:
- 新版轉譯器支援雲端式地圖樣式設定功能。
- 新版轉譯器支援進階折線自訂功能。
- 降低網路負載、處理需求和記憶體使用量。
- 改善手勢處理功能來提高動畫品質,以及使平移和縮放更順暢。
- 更流暢的轉場效果,以及位置明確的地圖標籤。
- 更穩定、更優質的使用者體驗。
支援的裝置
如要使用新版轉譯器,裝置必須符合下列條件:
- Android 5.0 (API 級別 21) 以上版本
- 資料儲存空間大於 2 GB
- 使用 Google Play 服務 21.39.14 以上版本
搭載 Android 4.4W (API 級別 20) 以下版本、資料儲存空間小於 2 GB,或是使用 Google Play 服務 21.39.13 以下版本的裝置,將繼續使用舊版轉譯器。
如何試用新版轉譯器
如要選擇採用新版轉譯器,請按照下列步驟操作:
- 將應用程式依附元件更新為使用
com.google.android.gms:play-services-maps:18.0.0
以上版本。 - 更新程式碼,直接匯入
MapsInitializer
和MapsInitializer.Renderer
。 - 更新程式碼以呼叫
MapsInitializer.initialize()
來要求Renderer.LATEST
。 - 使用
OnMapsSdkInitializedCallback
來判斷傳回的轉譯器版本。
您的程式碼必須先呼叫 MapsInitializer.initialize()
,再建立任何 MapView
、MapFragment
或 SupportMapFragment
。建議您針對應用程式的 Application
或 Activity
在 onCreate
中進行這項呼叫,再完成其內容檢視設定。
以下範例說明如何呼叫 MapsInitializer.initialize()
以要求轉譯器版本。
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.LATEST, 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; } } }
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.LATEST, 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.") } } }