Начать

Выберите платформу: Android iOS JavaScript

Ниже описывается, что нужно сделать, чтобы использовать стили на основе данных для границ.

Включите новое средство отрисовки карт

Обновленное средство отрисовки карт доступно в Maps SDK для Android версии 18.0.0. Мы добавили множество новых возможностей, включая поддержку облачных стилей карт в Maps SDK для Android.

С версии 18.2.0 в Maps SDK для Android вместо старого средства отрисовки по умолчанию используется обновленное. Это означает, что оно будет применяться при создании новых приложений или усовершенствовании старых.

Создайте идентификатор карты

Создайте идентификатор карты, следуя инструкциям. Убедитесь, что для карты задан тип Android.

Создайте стиль карты

Чтобы создать стиль, следуйте инструкциям в статье Управление стилями карт. Затем свяжите стиль с только что созданным идентификатором карты.

Выберите слои объектов в новом стиле карты

В Google API Console можно выбрать слои объектов, которые будут отображаться в новом стиле карты. Слой объектов определяет типы границ на карте (например, границ областей и районов).

  1. Откройте Google API Console и перейдите на страницу Map Styles (Стили карты).
  2. Если требуется, выберите проект.
  3. Выберите стиль карты.
  4. Нажмите на раскрывающееся меню Feature layers (Слои объектов) и выберите нужные слои.
  5. Нажмите Save (Сохранить), чтобы внести изменения на карты.

Скриншот с раскрывающимся списком.

Измените код инициализации карты

Вам понадобится идентификатор карты, который вы создали. Его можно посмотреть на странице Maps Management (Управление картами).

Подробнее о том, как добавить в приложение идентификатор карты…

Как получить доступ к слою объектов карты

Для представления каждого слоя объектов на карте, например слоя объектов "Почтовый индекс" или "Населенный пункт", используется объект FeatureLayer. Чтобы получить доступ к объекту слоя объектов, вызовите метод GoogleMap.getFeatureLayer() при инициализации карты:

Java

private FeatureLayer postalCodeLayer;
@Override public void onMapReady(GoogleMap map) { // Get the POSTAL_CODE feature layer. postalCodeLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()); ... }

Kotlin

private var postalCodeLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the POSTAL_CODE feature layer. postalCodeLayer = googleMap.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()) ... }

Передайте объект FeatureLayerOptions в getFeatureLayer(), чтобы указать тип слоя объектов. В этом примере вам нужен доступ к слою POSTAL_CODE. Создайте отдельный объект FeatureLayer для каждого слоя, стиль которого вы хотите настроить.

Получив объект FeatureLayer, вы можете применить стиль к многоугольникам границ в этом объекте.

Проверьте функции карты (обязательно)

Для настройки стилей на основе данных для границ требуется идентификатор карты. Если его значение недопустимо или отсутствует, стили на основе данных для границ загружаться не будут. Чтобы проверить, поддерживаются ли стили на основе данных для границ, воспользуйтесь методом MapCapabilities.

Kotlin

val capabilities: MapCapabilities = googleMap.getMapCapabilities()
System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())

Java

MapCapabilities capabilities = googleMap.getMapCapabilities();
System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());