Схема 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 указывает, к какому объекту карты нужно применить стиль. Названия свойств – это названия объектов карты в редакторе стилей, записанные в стиле CamelCase.
Объекты карты образуют дерево категорий. Если вы укажете только родительский объект, например 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 при импорте стиля.