自 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()
,以停用升級版地圖轉譯器,改為使用舊版地圖轉譯器。
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.")
}
}
}
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;
}
}
}