Выполните следующие действия, чтобы настроить стили границ на основе данных.
Включить новый рендерер карт
Обновленный рендерер карт доступен с версии 18.0.0 Maps SDK для Android. Этот рендерер приносит множество улучшений, включая поддержку облачного стиля карт, в Maps SDK для Android.
С выпуском версии 18.2.0 Maps SDK для Android компания Google переключила рендерер по умолчанию с устаревшего рендерера на обновленный рендерер карт. Это изменение означает, что обновленный рендерер карт теперь используется по умолчанию в вашем приложении при создании нового приложения или пересборке существующего приложения.
Создать идентификатор карты
Чтобы создать новый идентификатор карты, следуйте инструкциям в разделе Создание идентификатора карты . Убедитесь, что вы установили тип карты на Android .
Создать новый стиль карты
Чтобы создать новый стиль карты, следуйте инструкциям в разделе Управление стилями карты, чтобы создать стиль, и свяжите стиль с идентификатором карты, который вы только что создали .
Выберите слои объектов в новом стиле карты.
В консоли API Google вы можете выбрать, какие слои объектов отображать для вашего нового стиля карты. Слой объектов определяет, какие типы границ отображаются на карте (например, населенные пункты, штаты и т. д.).
- В консоли API Google перейдите на страницу «Стили карты» .
- При появлении запроса выберите проект.
- Выберите стиль карты.
- Нажмите раскрывающийся список «Слои объектов» , чтобы добавить или удалить слои.
- Нажмите «Сохранить» , чтобы сохранить изменения и сделать их доступными для ваших карт.
Обновите код инициализации вашей карты.
Для этого шага вам понадобится только что созданный идентификатор карты. Его можно найти на странице управления картами .
Чтобы добавить идентификатор карты в код инициализации, см. раздел Добавление идентификатора карты в приложение .
Получить доступ к слою объектов карты
Вы используете объект FeatureLayer
для представления каждого слоя объектов карты, например, слоя объектов Postal Code или Locality. Чтобы получить доступ к объекту слоя объектов, вызовите GoogleMap.getFeatureLayer()
при инициализации карты:
Ява
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()); ... }
Котлин
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
, чтобы проверить, поддерживается ли управляемый данными стиль для границ.
Котлин
val capabilities: MapCapabilities = googleMap.getMapCapabilities() System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())
Ява
MapCapabilities capabilities = googleMap.getMapCapabilities(); System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());