Начать

Выберите платформу: 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());