您可以變更預設語言設定和地圖的區碼,自訂地圖使用的語言和區域設定,這可能會根據指定的國家/地區或地域影響地圖的行為。
如要查看 Maps 3D SDK for Android 的涵蓋範圍,請參閱地圖涵蓋範圍表。
語言本地化
根據預設,Android 適用的 Maps 3D SDK 會使用使用者裝置上設定的語言,決定要顯示哪個語言版本的地圖。不過,您可以覆寫這項預設行為,並在初始化地圖時設定特定語言,或在地圖初始化後動態更新語言和區域。
設定語言會影響 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 屬性、region Map3DInitConfig 上的屬性,或 setRegion LocaleOptions 上的屬性設定區域,可提供不同的地圖圖塊,或根據區域調整應用程式,以提供更合適的結果。此外,設定區域標記可確保應用程式套用正確的區域本地化設定,符合發布國家/地區的當地法律規定。