將地圖本地化

您可以變更預設語言設定和地圖的區碼,自訂地圖使用的語言和區域設定,這可能會根據指定的國家/地區或地域影響地圖的行為。

如要查看 Maps 3D SDK for Android 的涵蓋範圍,請參閱地圖涵蓋範圍表。

語言本地化

根據預設,Android 適用的 Maps 3D SDK 會使用使用者裝置上設定的語言,決定要顯示哪個語言版本的地圖。不過,您可以覆寫這項預設行為,並在初始化地圖時設定特定語言,或在地圖初始化後動態更新語言和區域。

設定語言會影響 UI 控制項、工具提示和著作權通知顯示的語言。執行階段語言代碼更新會反映在地圖檢視中,但不會反映在任何其他 UI 控制項、工具提示或其他類似元素中。這項設定也會影響政治特徵、描述符和自然特徵的翻譯,例如將「Geneva」變更為「Genève」或「lake」變更為「lac」,並變更從右至左的文字顯示方向。

Maps 3D SDK for Android 會依下列順序尋找本地化偏好設定。如果未在第一個步驟中定義偏好設定,系統會繼續按照指定順序尋找:

  1. 執行階段更新:使用 LocaleOptions 將語言和區域偏好設定傳遞至 GoogleMap3D 執行個體上的 setLocale。
  2. 地圖初始化:建立地圖時指定的語言和地區偏好設定,無論是在 Map3DView 的版面配置 XML 中使用 map3d:language 和 map3d:region 屬性,還是透過程式輔助方式使用 Map3DInitConfig。
  3. 裝置設定:Android 裝置上設定的系統預設語言代碼。

下例顯示中文 ("zh") 地圖,且將區域設為中國 ("CN")。

您可以在版面配置 XML 檔案中,使用 Map3DView 的 map3d:language 和 map3d:region 屬性設定語言和區域:

<com.google.android.gms.maps3d.Map3DView
    android:id="@+id/map3dView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map3d:mapMode="hybrid"
    map3d:language="zh"
    map3d:region="CN" />

您也可以在執行階段動態更新語言和區域,方法是建立 LocaleOptions 執行個體,使用 setLanguage 和 setRegion 設定值,然後將其傳遞至 GoogleMap3D 執行個體上的 setLocale:

val localeOptions = LocaleOptions().apply {
    language = "zh"
    region = "CN"
}
googleMap3D.setLocale(localeOptions)

區域本地化

使用 map3d:region XML 屬性、region Map3DInitConfig 上的屬性,或 setRegion LocaleOptions 上的屬性設定區域,可提供不同的地圖圖塊,或根據區域調整應用程式,以提供更合適的結果。此外,設定區域標記可確保應用程式套用正確的區域本地化設定,符合發布國家/地區的當地法律規定。