您可以變更預設語言設定和地圖的區碼,自訂地圖使用的語言和區域設定,這可能會根據指定的國家/地區或地域影響地圖的行為。
如要瞭解 Maps 3D SDK for Android 的涵蓋範圍,請參閱地圖涵蓋範圍表。
語言本地化
根據預設,Maps 3D SDK for Android 會根據使用者裝置上的語言設定,決定要顯示的地圖翻譯版本。不過,您可以在初始化地圖時覆寫這項預設行為並設定特定語言,或是在地圖初始化後動態更新語言和區域。
設定語言會影響 UI 控制項、工具提示和著作權通知顯示的語言。執行階段語言代碼更新會反映在地圖檢視中,但不會反映在任何其他 UI 控制項、工具提示或其他類似元素中。這項設定也會影響政治特徵、描述元和自然特徵的翻譯 (例如將「Geneva」變更為「Genève」,或將「lake」變更為「lac」),並變更由右至左書寫文字的顯示方向。
Maps 3D SDK for Android 會依下列順序尋找本地化偏好設定。如果未在第一步定義偏好設定,系統會繼續按照指定順序尋找:
- 執行階段更新:使用
LocaleOptions將語言和區域偏好設定傳遞至GoogleMap3D執行個體上的setLocale。 - 地圖初始化:建立地圖時指定的語言和地區偏好設定,無論是在
Map3DView的版面配置 XML 中使用map3d:language和map3d:region屬性,還是透過程式輔助方式使用Map3DInitConfig。 - 裝置設定: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 屬性、Map3DInitConfig 的 region 屬性,或 LocaleOptions 的 setRegion 設定區域,可提供不同的地圖圖塊,或調整應用程式,提供更符合區域需求的結果。此外,設定區域標記可確保應用程式套用正確的區域本地化設定,符合應用程式發布國家/地區的當地法律規定。