Выполните следующие действия, чтобы настроить стиль границ на основе данных.
Включить новый рендерер карт
Обновленный модуль рендеринга карт доступен начиная с версии 18.0.0 Maps SDK для Android. Этот модуль рендеринга вносит в Maps SDK для Android множество улучшений, включая поддержку стилей облачных карт.
С выпуском версии 18.2.0 Maps SDK для Android компания Google заменила устаревший модуль визуализации по умолчанию на обновленный модуль визуализации карт. Это изменение означает, что обновленный модуль рендеринга карт теперь используется по умолчанию в вашем приложении при создании нового приложения или пересоздании существующего приложения.
Создать идентификатор карты
Чтобы создать новый идентификатор карты, выполните действия, описанные в разделе Создание идентификатора карты . Убедитесь, что в качестве типа карты установлено значение Android .
Создать новый стиль карты
Чтобы создать новый стиль карты, следуйте инструкциям в разделе «Управление стилями карты» , чтобы создать стиль и связать его с только что созданным идентификатором карты .
Выберите векторные слои в новом стиле карты.
В консоли Google API вы можете выбрать, какие векторные слои отображать для вашего нового стиля карты. Слой объектов определяет, какие типы границ отображаются на карте (например, населенные пункты, штаты и т. д.).
- В консоли Google API перейдите на страницу «Стили карт» .
- Выберите проект, если будет предложено.
- Выберите стиль карты.
- Щелкните раскрывающийся список Слои объектов , чтобы добавить или удалить слои.
- Нажмите «Сохранить» , чтобы сохранить изменения и сделать их доступными для ваших карт.
Обновите код инициализации карты.
Для этого шага требуется идентификатор карты, который вы только что создали. Его можно найти на странице управления картами .
Чтобы добавить идентификатор карты в код инициализации, см. раздел Добавление идентификатора карты в ваше приложение .
Получить доступ к векторному слою карты
Вы используете объект FeatureLayer
для представления каждого векторного слоя карты, например векторного слоя почтового индекса или местоположения. Чтобы получить доступ к объекту векторного слоя, вызовите 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());