将地图本地化

您可以通过更改默认语言设置和地图的区域代码,自定义地图中使用的语言和区域设置,这可能会根据指定的国家或地区影响地图的行为。

如需了解 Android 版 Maps 3D SDK 的覆盖范围,请参阅地图覆盖范围表。

语言本地化

默认情况下,Maps 3D SDK for Android 会使用用户设备上配置的语言设置来确定要显示的地图翻译版本。不过,您可以在初始化地图时替换此默认行为并设置特定语言,也可以在地图初始化后动态更新语言和区域。

设置语言会影响界面控件、提示和版权通知的显示语言。运行时语言区域更新会反映在地图视图中,但不会反映在任何其他界面控件、提示或其他此类元素中。它还会影响政治特征、描述符和自然特征的翻译(例如,将“Geneva”更改为“Genève”,或将“lake”更改为“lac”),并会更改从右向左书写的文字的呈现方向。

Android 版 Maps 3D SDK 会按以下顺序查找本地化偏好设置。如果第一步未定义偏好设置,则会继续按指定顺序查找:

  1. 运行时更新:使用 LocaleOptions 将语言和地区偏好设置传递给 GoogleMap3D 实例上的 setLocale。
  2. 地图初始化:创建地图时指定的语言和地区偏好设置,可以在布局 XML 中使用 map3d:language 和 map3d:region 属性在 Map3DView 上指定,也可以使用 Map3DInitConfig 以程序化方式指定。
  3. 设备设置:在 Android 设备上配置的系统默认语言区域。

以下示例以中文 ("zh") 显示地图,并将区域设置为中国 ("CN")。

您可以使用 Map3DView 上的 map3d:language 和 map3d:region 属性在布局 XML 文件中配置语言和区域:

<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 设置区域,可以提供不同的地图图块,或使应用偏向于更适合该区域的结果。此外,设置区域代码可确保应用针对其分发到的国家或地区应用正确的区域本地化,从而确保应用符合当地法律。