新版地圖轉譯器

自 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.initialize(),再建立任何 MapViewMapFragmentSupportMapFragment。建議您針對應用程式的 ApplicationActivityonCreate 中進行這項呼叫,再完成相關的內容檢視設定。

下例顯示如何呼叫 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;
    }
  }
}