С помощью параметров стиля вы можете настроить отображение стандартных стилей карт Google, изменив визуальное представление таких объектов, как дороги, парки, предприятия и другие достопримечательности. Помимо изменения стиля этих объектов, вы можете полностью скрыть их. Это означает, что вы можете выделить определенные компоненты карты или сделать так, чтобы карта дополняла стиль окружающей страницы.
Примеры
Следующее объявление в формате JSON окрашивает все элементы карты в серый цвет, затем окрашивает геометрию магистральных дорог в синий цвет и полностью скрывает подписи ландшафта:
[ { "featureType": "all", "stylers": [ { "color": "#C0C0C0" } ] },{ "featureType": "road.arterial", "elementType": "geometry", "stylers": [ { "color": "#CCFFFF" } ] },{ "featureType": "landscape", "elementType": "labels", "stylers": [ { "visibility": "off" } ] } ]
JSON-объект
Объявление в формате JSON состоит из следующих элементов:
- featureType (необязательно) — параметры, которые необходимо выбрать для данного изменения стиля. Параметры — это географические характеристики на карте, включая дороги, парки, водоемы и многое другое. Если вы не укажете параметр, будут выбраны все параметры.
- elementType (необязательно) — свойство указанного объекта для выбора. Элементы — это подобъекты объекта, включая метки и геометрию. Если элемент не указан, будут выбраны все элементы объекта.
- Стилисты — правила, применяемые к выбранным элементам и функциям. Стилисты определяют цвет, видимость и вес элемента. К элементу можно применить один или несколько стилистов.
Для задания стиля необходимо объединить набор селекторов featureType и elementType , а также ваши stylers в массив стилей. Вы можете выбрать любую комбинацию функций в одном массиве. Однако количество стилей, которые можно применить одновременно, ограничено. Если ваш массив стилей превышает максимальное количество символов, стиль не будет применен.
На остальной части этой страницы представлена дополнительная информация о функциях, элементах и стилизаторах.
featureType
Следующий фрагмент JSON выделяет все дороги на карте:
{ "featureType": "road" }
Объекты, или типы объектов, — это географические характеристики на карте, включая дороги, парки, водоемы, предприятия и многое другое.
Объекты образуют дерево категорий, корнем которого является all ". Если вы не указываете объект, выбираются все объекты. Указание объекта " all имеет тот же эффект.
Некоторые объекты содержат дочерние объекты, которые вы указываете с помощью точечной нотации. Например, landscape.natural или road.local . Если вы указываете только родительский объект, например road , то стили, указанные для родительского объекта, применяются ко всем его дочерним объектам, таким как road.local и road.highway .
Обратите внимание, что родительские элементы могут включать в себя некоторые компоненты, которые отсутствуют во всех дочерних элементах.
Доступны следующие функции:
-
all(по умолчанию) выбирает все объекты. -
administrativeвыделяет все административные районы. Стилизация затрагивает только названия административных районов, а не географические границы или заливку.-
administrative.countryвыбирает страны. -
administrative.land_parcelвыбирает земельные участки. -
administrative.localityвыбирает населенные пункты. -
administrative.neighborhoodвыбирает районы. -
administrative.provinceвыбирает провинции.
-
-
landscapeвыбирает все ландшафты.-
landscape.man_madeвыбирает искусственные объекты, такие как здания и другие сооружения. -
landscape.naturalвыбирает природные объекты, такие как горы, реки, пустыни и ледники. -
landscape.natural.landcoverвыбирает характеристики растительного покрова — физический материал, покрывающий поверхность Земли, такой как леса, луга, болота и голая земля. -
landscape.natural.terrainвыбирает характеристики рельефа местности, такие как высота, уклон и ориентация.
-
- Функция
poiвыбирает все точки интереса.-
poi.attractionвыбирает туристические достопримечательности. -
poi.businessотбирает компании. -
poi.governmentвыбирает правительственные здания. -
poi.medicalотбирает службы экстренной помощи, включая больницы, аптеки, полицию, врачей и другие. -
poi.parkвыбирает парки. -
poi.place_of_worshipвыбирает места отправления культа, включая церкви, храмы, мечети и другие. -
poi.schoolвыбирает школы. -
poi.sports_complexвыбирает спортивные комплексы.
-
-
roadвыбирает все дороги.-
road.arterialвыбирает магистральные дороги. -
road.highwayвыбирает автомагистрали. -
road.highway.controlled_accessвыбирает автомагистрали с контролируемым доступом. -
road.localвыбирает местные дороги.
-
-
transitвыбирает все транспортные станции и линии.-
transit.lineвыбирает маршруты общественного транспорта. -
transit.stationвыбирает все транзитные станции. -
transit.station.airportвыбирает аэропорты. -
transit.station.busвыбирает автобусные остановки. -
transit.station.railвыбирает железнодорожные станции.
-
-
waterвыбирает водоемы.
elementType
Следующий фрагмент JSON выделяет метки для всех местных дорог:
{ "featureType": "road.local", "elementType": "labels" }
Элементы — это подразделения объекта. Например, дорога состоит из графической линии (геометрии) на карте, а также текста, обозначающего её название (метки).
Доступны следующие элементы, однако следует отметить, что конкретная функция может поддерживать ни один, некоторые или все из этих элементов:
Цвета fill и stroke текста в подписи меняются в зависимости от уровня масштабирования. Для обеспечения единообразия отображения на разных уровнях масштабирования всегда задавайте параметры fill и stroke .
-
all(по умолчанию) выбирает все элементы указанного объекта. -
geometryвыбирает все геометрические элементы указанного объекта.-
geometry.fillвыбирает только заливку геометрии объекта. -
geometry.strokeвыбирает только обводку геометрии объекта.
-
-
labelsвыбирает текстовые метки, связанные с указанным элементом.-
labels.iconвыбирает только тот значок, который отображается внутри метки объекта. -
labels.textвыделяет только текст метки. -
labels.text.fillвыбирает только заливку метки. Заливка метки обычно отображается в виде цветной обводки, окружающей текст метки. -
labels.text.strokeвыделяет только обводку текста метки.
-
stylers
Стили — это параметры форматирования, которые можно применять к элементам и функциям карты.
Следующий фрагмент JSON отображает объект ярко-зеленым цветом, используя значение RGB:
"stylers": [ { "color": "#99FF33" } ]
Этот фрагмент кода удаляет всю интенсивность цвета объекта, независимо от его исходного цвета. В результате объект отображается в оттенках серого:
"stylers": [ { "saturation": -100 } ]
Этот фрагмент кода полностью скрывает одну из функций:
"stylers": [ { "visibility": "off" } ]
Поддерживаются следующие параметры стиля:
-
hue(шестнадцатеричная строка RGB в формате#RRGGBB) обозначает основной цвет.Примечание: Этот параметр задает оттенок, сохраняя при этом насыщенность и яркость, указанные в стиле Google по умолчанию (или в других параметрах стиля, которые вы определяете на карте). Полученный цвет определяется относительно стиля базовой карты. Если Google внесет какие-либо изменения в стиль базовой карты, эти изменения повлияют на объекты вашей карты, оформленные с помощью
hue. По возможности лучше использовать абсолютный стильcolor. -
lightness(значение с плавающей запятой от-100до100) указывает на процентное изменение яркости элемента. Отрицательные значения увеличивают темноту (где -100 соответствует черному цвету), а положительные значения увеличивают яркость (где +100 соответствует белому цвету).Примечание: Этот параметр задает яркость, сохраняя при этом насыщенность и оттенок, указанные в стиле Google по умолчанию (или в других параметрах стиля, которые вы определяете на карте). Полученный цвет определяется относительно стиля базовой карты. Если Google внесет какие-либо изменения в стиль базовой карты, эти изменения повлияют на объекты вашей карты, оформленные с использованием параметра
lightness. По возможности лучше использовать абсолютный стильcolor. -
saturation(значение с плавающей запятой от-100до100) указывает процентное изменение интенсивности основного цвета, применяемое к элементу.Примечание: Этот параметр задает насыщенность, сохраняя при этом оттенок и яркость, указанные в стиле Google по умолчанию (или в других параметрах стиля, которые вы определяете на карте). Полученный цвет определяется относительно стиля базовой карты. Если Google внесет какие-либо изменения в стиль базовой карты, эти изменения повлияют на объекты вашей карты, оформленные с использованием
saturation. По возможности лучше использовать абсолютный стильcolor. -
gamma(значение с плавающей запятой от0.01до10.0, где1.0не применяет коррекцию) указывает величину гамма-коррекции, применяемой к элементу. Гамма-коррекция изменяет яркость цветов нелинейным образом, не влияя при этом на значения белого или черного цвета. Гамма-коррекция обычно используется для изменения контраста нескольких элементов. Например, вы можете изменить гамму, чтобы увеличить или уменьшить контраст между краями и внутренними частями элементов.Примечание: Этот параметр регулирует яркость относительно стандартного стиля Google, используя гамма-кривую. Если Google внесет какие-либо изменения в базовый стиль карты, эти изменения повлияют на объекты вашей карты, оформленные с помощью
gamma. По возможности лучше использовать абсолютныйcolorстилизатор. -
invert_lightness(еслиtrue) инвертирует существующую яркость. Это полезно, например, для быстрого переключения на более темную карту с белым текстом.Примечание: Этот параметр просто инвертирует стиль Google по умолчанию. Если Google внесет какие-либо изменения в базовый стиль карты, эти изменения повлияют на объекты вашей карты, оформленные с помощью
invert_lightness. По возможности лучше использовать абсолютный стильcolor. -
visibility(on.,off. илиsimplified) указывает, отображается ли элемент на карте и каким образом.simplifiedвидимость удаляет некоторые элементы стиля у соответствующих объектов; например, дороги упрощаются до более тонких линий без контуров, а парки теряют текст подписи, но сохраняют значок подписи. -
color(шестнадцатеричная строка RGB в формате#RRGGBB) задает цвет объекта. -
weight(целочисленное значение, большее или равное нулю) задает вес объекта в пикселях. Установка высокого значения weight может привести к обрезке вблизи границ тайлов.
Правила стиля применяются в указанном вами порядке. Не объединяйте несколько операций в одну операцию стиля. Вместо этого определите каждую операцию как отдельную запись в массиве стилей.
Примечание: порядок операций важен, поскольку некоторые операции не коммутативны. Функции и/или элементы, которые изменяются с помощью операций со стилями, (обычно) уже имеют существующие стили. Операции применяются к этим существующим стилям, если они присутствуют.
Модель оттенка, насыщенности и яркости
В стилизованных картах для обозначения цвета в операциях стилизации используется модель оттенка, насыщенности и яркости (HSL) . Оттенок обозначает основной цвет, насыщенность — интенсивность этого цвета, а яркость — относительное количество белого или черного в составляющем цвете.
Гамма-коррекция изменяет яркость в цветовом пространстве, как правило, для увеличения или уменьшения контраста. Кроме того, модель HSL определяет цвет в координатном пространстве, где hue указывает на ориентацию на цветовом круге, а насыщенность и яркость указывают на амплитуды вдоль различных осей. Оттенки измеряются в цветовом пространстве RGB, которое похоже на большинство цветовых пространств RGB, за исключением того, что в нем отсутствуют оттенки белого и черного.

Хотя hue принимает шестнадцатеричное значение цвета в формате HTML, он использует это значение только для определения основного цвета — то есть его положения на цветовом круге, а не насыщенности или яркости, которые указываются отдельно в виде процентных изменений.
Например, оттенок чистого зеленого можно задать как hue:0x00ff00 или hue:0x000100 . Оба оттенка идентичны. В цветовой модели HSL оба значения указывают на чистый зеленый цвет.

Цветовое колесо RGB
Значения hue RGB, состоящие из равных частей красного, зеленого и синего, не указывают на оттенок, поскольку ни одно из этих значений не указывает на ориентацию в координатном пространстве HSL. Примерами являются "#000000" (черный), "#FFFFFF" (белый) и все чистые оттенки серого. Чтобы обозначить черный, белый или серый цвет, необходимо удалить всю saturation (установить значение -100 ) и вместо этого отрегулировать lightness .
Кроме того, при изменении существующих элементов, уже имеющих цветовую схему, изменение таких значений, как hue не влияет на их существующую saturation или lightness .