Схема JSON для облачных стилей карт позволяет настраивать карты с помощью JSON так же, как и в редакторе стилей. В этом документе описывается схема JSON и способы объявления стилей JSON.
Чтобы узнать, как редактировать стиль карты с помощью JSON в редакторе стилей, а также импортировать и экспортировать стиль карты, ознакомьтесь со статьей Как использовать JSON с облачными стилями карт.
Пример объявления стиля JSON
Следующее определение стиля JSON задает цвет фона, а затем определяет стили для объектов инфраструктуры, парков и водоемов и скрывает метки для заведений общественного питания.
{
"variant": "light",
"styles": [
{
"id": "natural.land",
"geometry": {
"fillColor": "#f7e3f7"
}
},
{
"id": "natural.water",
"geometry": {
"fillColor": "#d4b2ff"
},
"label": {
"textFillColor": "#3d2163",
"textStrokeColor": "#f0e1ff"
}
},
{
"id": "pointOfInterest",
"label": {
"pinFillColor": "#e0349a",
"textFillColor": "#a11e6e",
"textStrokeColor": "#ffd9f0"
}
},
{
"id": "pointOfInterest.emergency.hospital",
"geometry": {
"fillColor": "#ffe3e3"
}
},
{
"id": "pointOfInterest.foodAndDrink",
"label": {
"visible": false
}
},
{
"id": "pointOfInterest.recreation.park",
"geometry": {
"fillColor": "#f9b9d2"
}
}
]
}
Объект JSON
Объявление стиля JSON состоит из объекта верхнего уровня и массива правил стиля.
- Свойства верхнего уровня (необязательно) – глобальные настройки стиля, например
backgroundColorиvariant. styles– массив объектов правил стиля, которые могут состоять из следующих элементов:id– объект карты, который нужно выбрать для изменения стиля (например,pointOfInterest.recreation.park).geometry(необязательно) – геометрические элементы объекта карты и правила стиля, которые нужно применить (например,fillColor).label(необязательно) – текстовый или графический ярлык объекта карты и правила стиля, которые нужно применить (например,textStrokeColor).
Свойства верхнего уровня
Свойства в таблице ниже применяются ко всему стилю карты.
| Ресурс | Тип | Описание | Пример |
|---|---|---|---|
|
Строка | Настройте цвет фона приложения с картой, используя шестнадцатеричную строку #RRGGBB. Для этого параметра нельзя изменить прозрачность. | "#002211" |
|
"light"|"dark" | Укажите светлую или тёмную тему. Если значение не указано, по умолчанию используется вариант "light". | "light" |
|
Логическое значение | Чтобы включить монохромный режим, используйте true для серой версии карты. |
|
|
Объект | Произвольные данные в формате "ключ-значение", включенные в определение стиля. В этом поле можно указать информацию о стиле, не связанную с оформлением. Эти данные не отправляются клиентам карт, например Maps JavaScript SDK. |
|
Объекты правил стиля
В этом разделе описываются свойства, определяющие объекты правил стиля в массиве styles для настройки объектов карты. Каждый объект правила стиля должен состоять из следующих элементов:
id.- Элемент
geometryилиlabelс заданными свойствами стилей.
id (объект карты)
Свойство id указывает, к какому объекту карты нужно применить стиль. Названия свойств – это названия объектов карты в редакторе стилей, записанные в стиле camel case.
Объекты карты образуют дерево категорий. Если вы укажете тип родительского объекта, например pointOfInterest, то стили, выбранные для него, также будут применены ко всем его дочерним объектам, таким как pointOfInterest.retail и pointOfInterest.lodging.
Подробнее об иерархии объектов карты…
Список доступных свойств id
Доступны следующие свойства id:
pointOfInterestpointOfInterest.emergencypointOfInterest.emergency.firepointOfInterest.emergency.hospitalpointOfInterest.emergency.pharmacypointOfInterest.emergency.policepointOfInterest.entertainmentpointOfInterest.entertainment.artspointOfInterest.entertainment.casinopointOfInterest.entertainment.cinemapointOfInterest.entertainment.historicpointOfInterest.entertainment.museumpointOfInterest.entertainment.themeParkpointOfInterest.entertainment.touristAttractionpointOfInterest.foodAndDrinkpointOfInterest.foodAndDrink.barpointOfInterest.foodAndDrink.cafepointOfInterest.foodAndDrink.restaurantpointOfInterest.foodAndDrink.winerypointOfInterest.landmarkpointOfInterest.lodgingpointOfInterest.recreationpointOfInterest.recreation.beachpointOfInterest.recreation.boatingpointOfInterest.recreation.fishingpointOfInterest.recreation.golfCoursepointOfInterest.recreation.hotSpringpointOfInterest.recreation.natureReservepointOfInterest.recreation.parkpointOfInterest.recreation.peakpointOfInterest.recreation.sportsComplexpointOfInterest.recreation.sportsFieldpointOfInterest.recreation.trailheadpointOfInterest.recreation.zoopointOfInterest.retailpointOfInterest.retail.grocerypointOfInterest.retail.shoppingpointOfInterest.servicepointOfInterest.service.atmpointOfInterest.service.bankpointOfInterest.service.carRentalpointOfInterest.service.evChargingpointOfInterest.service.gasStationpointOfInterest.service.parkingLotpointOfInterest.service.postOfficepointOfInterest.service.restStoppointOfInterest.service.restroompointOfInterest.transitpointOfInterest.transit.airportpointOfInterest.otherpointOfInterest.other.bridgepointOfInterest.other.cemeterypointOfInterest.other.governmentpointOfInterest.other.librarypointOfInterest.other.militarypointOfInterest.other.placeOfWorshippointOfInterest.other.schoolpointOfInterest.other.townSquarepoliticalpolitical.countryOrRegionpolitical.borderpolitical.reservationpolitical.stateOrProvincepolitical.citypolitical.sublocalitypolitical.neighborhoodpolitical.landParcelinfrastructureinfrastructure.buildinginfrastructure.building.commercialinfrastructure.businessCorridorinfrastructure.roadNetworkinfrastructure.roadNetwork.noTrafficinfrastructure.roadNetwork.noTraffic.pedestrianMallinfrastructure.roadNetwork.noTraffic.trailinfrastructure.roadNetwork.noTraffic.trail.pavedinfrastructure.roadNetwork.noTraffic.trail.unpavedinfrastructure.roadNetwork.parkingAisleinfrastructure.roadNetwork.rampinfrastructure.roadNetwork.roadinfrastructure.roadNetwork.road.arterialinfrastructure.roadNetwork.road.highwayinfrastructure.roadNetwork.road.localinfrastructure.roadNetwork.road.noOutletinfrastructure.roadNetwork.roadShieldinfrastructure.roadNetwork.roadSigninfrastructure.roadNetwork.roadDetailinfrastructure.roadNetwork.roadDetail.surfaceinfrastructure.roadNetwork.roadDetail.crosswalkinfrastructure.roadNetwork.roadDetail.sidewalkinfrastructure.roadNetwork.roadDetail.intersectioninfrastructure.railwayTrackinfrastructure.railwayTrack.commercialinfrastructure.railwayTrack.commuterinfrastructure.transitStationinfrastructure.transitStation.bicycleShareinfrastructure.transitStation.busStationinfrastructure.transitStation.ferryTerminalinfrastructure.transitStation.funicularStationinfrastructure.transitStation.gondolaStationinfrastructure.transitStation.monorailinfrastructure.transitStation.railStationinfrastructure.transitStation.railStation.subwayStationinfrastructure.transitStation.railStation.tramStationinfrastructure.urbanAreanaturalnatural.continentnatural.archipelagonatural.islandnatural.landnatural.land.landCovernatural.land.landCover.cropsnatural.land.landCover.dryCropsnatural.land.landCover.forestnatural.land.landCover.icenatural.land.landCover.sandnatural.land.landCover.shrubnatural.land.landCover.tundranatural.waternatural.water.oceannatural.water.lakenatural.water.rivernatural.water.othernatural.base
Элементы
Элементы – это составные части того или иного объекта. Например, дорога состоит из графической линии (geometry) на карте и текста, указывающего ее название (label).
Ниже перечислены доступные элементы, однако обратите внимание, что определенный объект карты может не поддерживать все эти элементы или некоторые из них:
geometry– выбирает все геометрические элементы (например, многоугольник, ломаную линию) указанного объекта карты.label– выбирает все элементы ярлыка (например, текст, маркер) указанного объекта карты.
Стилизаторы
Параметры стилей позволяют задавать правила стиля для каждого элемента объекта карты.
Например, для контура здания можно задать стиль каждого элемента следующим образом:
Пример стилей geometry для здания |
Пример стилей label для здания |
|---|---|
| Показывать или скрывать многоугольник проекции здания на карте. | Скрывать или показывать название здания. |
| Цвет и прозрачность заливки многоугольника. | Выберите цвет и прозрачность заливки текста. |
| Цвет, прозрачность и толщина рамки. | Выберите цвет и прозрачность контура текста. |
В этом разделе описаны различные варианты стилей, доступные для элементов geometry и label.
geometry stylers
В таблице ниже перечислены все доступные стили геометрии.
| Styler | Тип | Описание |
|---|---|---|
|
Логическое значение | Чтобы скрыть многоугольник или ломаную линию объекта карты, задайте значение false. |
|
string | Настройте цвет многоугольника или ломаной линии с помощью шестнадцатеричной строки RGB. |
|
число с плавающей запятой | Настройте прозрачность многоугольника или ломаной линии. 0 – прозрачный, 1 – непрозрачный. |
|
string | Настройте цвет контура с помощью шестнадцатеричной строки RGB. |
|
число с плавающей запятой | Настройте прозрачность контура, где 0 – прозрачный, а 1 – непрозрачный. |
|
число с плавающей запятой | Настройте толщину контура (от 0 до 8). |
Подробнее о многоугольниках и ломаных линиях…
label stylers
В таблице ниже перечислены все доступные стили ярлыков.
| Styler | Тип | Описание |
|---|---|---|
|
Логическое значение | Чтобы скрыть ярлык объекта на карте, установите значение false. |
|
string | Настройте цвет текстового ярлыка с помощью шестнадцатеричной строки RGB. |
|
число с плавающей запятой | Настройте прозрачность текстового ярлыка, где 0 – прозрачный, а 1 – непрозрачный. |
|
string | Настройте цвет контура с помощью шестнадцатеричной строки RGB. |
|
число с плавающей запятой | Настройте прозрачность контура, где 0 – прозрачный, а 1 – непрозрачный. |
|
число с плавающей запятой | Настройте толщину контура в диапазоне от 0 до 8. |
|
string | Настройте цвет маркера с помощью шестнадцатеричной строки RGB. |
|
string | Настройте цвет глифа (значка) внутри маркера с помощью шестнадцатеричной строки RGB. |
|
string | Настройте цвет контура маркера с помощью шестнадцатеричной строки RGB. |
Подробнее о значках и текстовых ярлыках…
Начальные масштабы
Вы можете задать один стиль для объекта на всех ключевых уровнях масштабирования или указать разные стили для разных ключевых уровней масштабирования. Если вы зададите только один стиль, он будет использоваться для всех начальных масштабов, начиная с z0. Если вы зададите стили для разных начальных масштабов, то стиль будет применяться от этого уровня масштабирования до следующего заданного вами.
Чтобы задать начальный масштаб для стиля, в свойстве styler укажите уровень масштабирования от z0 до z22, а затем настройте стиль.
В примере ниже цвет воды будет черным на уровнях масштабирования 0–5, темно-серым на уровнях 6–11 и светло-серым на уровнях от 12 и выше.
{
"id": "natural.water",
"geometry": {
"fillColor": {
"z0": "#000000",
"z6": "#666666",
"z12": "#cccccc"
}
}
}
Подробнее об уровнях масштабирования стилей.
Ограничения
С помощью JSON можно настроить стиль практически всех элементов в консоли Google Cloud, за исключением следующих параметров в меню Настройки карты:
- Как настроить плотность объектов инфраструктуры
- Изменить стиль зданий (проекция или 3D).
- Изменить стиль отображения ориентиров (стандартный или иллюстрированный).
Для правильного отображения этих параметров на уровне карты требуется повторно получить данные фрагментов, что может быть нежелательно в некоторых случаях.
Для этого выберите нужный вариант в меню Настройки карты.
Поскольку эти параметры не включаются в экспортированные стили, их необходимо повторно выбрать в консоли Google Cloud при импорте стиля.