Как локализовать карту

Вы можете настроить язык и регион, которые используются на карте, изменив язык по умолчанию и код региона. Код региона может влиять на поведение карты в зависимости от указанной страны или территории.

Покрытие Maps 3D SDK для Android можно посмотреть в таблице покрытия Карт.

Языковая локализация

По умолчанию Maps 3D SDK для Android использует языковые настройки устройства пользователя, чтобы определить, на каком языке показывать карту. Однако вы можете переопределить этот режим работы по умолчанию и задать определенный язык при инициализации карты или динамически изменить язык и регион после инициализации карты.

От этого зависит, на каком языке будут показываться элементы управления, подсказки и уведомления о нарушении авторских прав. Изменения региональных настроек во время выполнения отражаются в представлении карты, но не в других элементах управления пользовательского интерфейса, подсказках и т. д. Он также влияет на перевод политических объектов, дескрипторов и природных объектов (например, "Geneva" меняется на "Genève", а "lake" – на "lac") и меняет направление отображения текста для языков с письмом справа налево.

Maps 3D SDK для Android ищет настройки локализации в следующем порядке: Если на первом шаге предпочтения не определены, то поиск продолжается в указанном порядке:

  1. Обновления во время выполнения. Настройки языка и региональные настройки передаются в setLocale в экземпляре GoogleMap3D с помощью LocaleOptions.
  2. Инициализация карты. Язык и региональные настройки, указанные при создании карты в макете XML в Map3DView с помощью атрибутов map3d:language и map3d:region или программно с помощью Map3DInitConfig.
  3. Настройки устройства. Региональные настройки по умолчанию, заданные на устройстве Android.

В следующем примере показана карта на китайском языке ("zh") с установкой региона "Китай" ("CN"):

Вы можете настроить язык и регион в XML-файле макета, используя атрибуты map3d:language и map3d:region в элементе 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 и передав его в setLocale в экземпляре GoogleMap3D:

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

Локализация для региона

Если задать регион с помощью атрибута XML map3d:region, свойства region для Map3DInitConfig или setRegion для LocaleOptions, можно показывать разные фрагменты карты или настроить приложение так, чтобы оно выдавало более подходящие для региона результаты. Кроме того, тег региона позволяет обеспечить соответствие приложения местному законодательству, поскольку в нем задается правильная региональная локализация для страны или территории, где распространяется приложение.