将地图本地化

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

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

语言本地化

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

设置语言会影响界面控件、工具提示和版权通知的显示语言。运行时语言区域更新会反映在地图视图中,但不会反映在任何其他界面控件、工具提示或其他此类元素中。它还会影响政治特征、描述符和自然特征的翻译(例如将“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")。

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

<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 设置区域可以提供不同的地图图块,或者使应用偏向于更 适合区域的结果。此外,设置区域标记可确保应用通过为应用分发的国家或地区应用正确的区域本地化来遵守当地法律。