Кастомизация карты

Кастомизация карты позволяет изменить внешний вид большинства геообъектов на ней. Например, перекрасить дороги или дома в другой цвет.

Кастомизация задается параметром style в виде строки, содержащей один или несколько блоков, разделённых символом ~:

style=Блок1~Блок2~...~БлокN

Каждый блок состоит из списка фильтров и переопределяемых свойств, разделённых символом |:

Фильтр1|Фильтр2|...|ФильтрN|Свойство1|Свойство2|...|СвойствоN

Фильтр состоит из имени фильтра, символа : и списка значений, разделённых символом ;:

{имя фильтра}:{значение1};{значение2};...;{значениеN}

Поддерживаются следующие фильтры:

  • tags.all, tags.any, tags.none — описывают, к каким объектам должна применяться стилизация, подробнее в разделе Теги;
  • types — ограничивает типы объектов. Возможные значения описаны в разделе Типы;
  • elements — определяет элементы объекта, у которых меняются свойства отображения. Возможные значения описаны в разделе Элементы.

Переопределяемое свойство имеет следующий формат:

stylers.{имя свойства}:{значение}
stylers{диапазон масштабов}.{имя свойства}:{значение}

Диапазон масштабов может задаваться в формате [zoom] или [zmin-zmax].

Поддерживаемые свойства описаны в разделе Свойства.

Теги

Фильтры определяют подмножество объектов карты, к которым применяется блок кастомизации.

Большинство объектов на карте имеют один или несколько тегов, которые позволяют их классифицировать.

В качестве фильтра поддерживаются:

  • tags.all - у объекта должны присутствовать все указанные теги;
  • tags.any - у объекта должен быть хотя бы один из указанных тегов;
  • tags.none - у объекта не должно быть указанных тегов.

Если фильтр отсутствует, блок кастомизации применяется ко всем объектам карты.

Внимание

При наличии в одном из фильтров незнакомого тега блок кастомизации не применяется.

Список тегов

Теги объектов зависят от слоя карты, для которого применяются стили. Ниже перечислены теги, с помощью которых можно менять подложку карты.

  • road — автомобильные дороги:
    • road_N — автомобильные дороги важности N, где N — значение от 1 (наиболее важные) до 7 (наименее важные);
    • road_limited — дороги с ограничением движения автомобильного транспорта, пешеходные зоны;
    • road_unclassified — неклассифицированные дороги, как правило, лесные и полевые;
    • road_minor — внутриквартальные проезды;
    • road_construction — строящиеся дороги;
    • ferry — паромные переправы;
    • path — дороги, непригодные для проезда автомобилей (тротуары, дорожки в парках и на кладбищах, велодорожки);
    • crosswalk — пешеходные и велосипедные переходы;
    • underpass — подземные пешеходные переходы;
    • traffic_light — светофоры.
    • road_surface — дорожное полотно и границы дорожного полотна;
    • road_marking — дорожная разметка;
  • water — водные объекты:
    • bathymetry — карта глубин водоемов.
  • landscape — наземные объекты:
    • land — земная поверхность;
    • landcover — растительность, болота, ледники:
      • vegetation — растительность, включая газоны, внутриквартальную растительность и точечные растения.
    • urban_area — кварталы:
      • residential — жилые кварталы;
      • industrial — промышленные кварталы;
      • cemetery — территории кладбищ;
      • park — сады, парки;
      • medical — территории медицинских учреждений;
      • sports_ground — спортивные площадки и игровые поля;
      • beach — территории пляжей;
      • construction_site — строительные площадки;
      • parking — парковки.
    • national_park — национальные парки и заповедники;
    • terrain — рельеф.
  • poi — точки интереса:
    • major_landmark — хорошо заметные объекты, отмеченные отдельной иконкой;
    • outdoor — площадки на открытом воздухе:
      • park — сады, парки;
      • national_park — национальные парки и заповедники;
      • beach — пляжи.
    • parking — парковки;
    • shopping — магазины, торговые центры;
    • commercial_services — организации, предоставляющие коммерческие услуги:
      • fuel_station — заправочные станции;
      • hotel — гостиницы, жильё.
    • food_and_drink — рестораны, бары;
    • cemetery — кладбища;
    • medical — медицинские учреждения.
  • admin — подписи и границы административно-территориальных делений, полигоны населенных пунктов:
    • country — страны;
    • region — области или штаты;
    • locality — населенные пункты;
    • district — городские районы;
    • address — адресные точки.
  • transit — все объекты карты, связанные с общественным транспортом:
    • transit_location — все точки на карте, связанные с общественным транспортом (станции метро, остановки, входы)
      • transit_stop — остановки наземного общественного транспорта, где выполняется посадка и высадка пассажиров;
      • transit_entrance — физические входы на станцию метро или выходы из нее.
    • transit_line — линии транспорта как физический объект (железнодорожные и трамвайные пути, кабельные линии на поверхности);
    • transit_schema — схематическое изображение линий общественного транспорта;
    • is_unclassified_transit — объекты общественного транспорта, важность которых неизвестна.
  • structure — структуры:
    • building — здания:
      • entrance — входы в здания.
    • fence — заборы.
  • is_tunnel — участок дороги или пути проходит в тоннеле.
  • is_toll — платный участок дороги.
  • geographic_line — линия экватора, полярные круги.

Типы

Фильтр types определяет типы объектов карты, к которым применяется блок кастомизации. Можно задать один или несколько элементов. Возможные значения:

  • point — точки. Например, автобусные остановки, POI.
  • polyline — линии. Например, дороги, границы, русла рек.
  • polygon — полигоны. Например, парки, озера.

Если фильтр отсутствует, блок кастомизации применяется ко всем типам объектов карты.

Элементы

Фильтр elements определяет элементы объекта карты, у которых меняются свойства отображения. Возможные значения:

  • geometry — геометрические элементы объекта (является комбинацией geometry.fill и geometry.outline).
  • geometry.fill — внутренняя область (заливка) геометрических элементов объекта.
  • geometry.fill.pattern — картинка, которой мостится внутренняя область полигона или линии.
  • geometry.outline — обводка геометрических элементов объекта.
  • label — все элементы подписи объекта.
  • label.icon — иконка объекта.
  • label.text — текст подписи объекта (является комбинацией label.text.fill и label.text.outline).
  • label.text.fill — заливка текста подписи объекта.
  • label.text.outline — обводка текста подписи объекта.

Если фильтр отсутствует, свойства в данном блоке кастомизации будут меняться у всех элементов объектов карты.

Свойства

Поддерживаемые переопределяемые свойства (применяются в этом порядке):

  • visibility — задает видимость объекта. Возможное значение: off.
  • hue — меняет цветовой тон объекта на карте, при этом оставляет насыщенность и яркость без изменений. Задается базовым цветом в формате RRGGBB (см. описание свойства color). При базовом цвете с неопределенным тоном (белом, сером или черном) цвет объекта не изменяется.
  • saturation — меняет насыщенность цветов на карте. Задается в виде вещественного числа из диапазона [-1, 1]. При -1 все цвета превращаются в оттенки серого, при 1 картинка приобретает очень высокую насыщенность цвета, при 0 цвет не изменяется. Оттенки серого не изменяются.
  • lightness — меняет яркость цветов на карте. Задается в виде вещественного числа из диапазона [-1, 1]. При -1 превращает все в черный, при 1 — в белый, при 0 цвет не изменяется.
  • color — меняет цвет объекта (в случае иконки — ее primary цвет). Поддерживаются следующие форматы:
    • RGB, RRGGBB, 0xRGB, 0xRRGGBB — строка с hex-кодом цвета.
    • RGBA, RRGGBBAA, 0xRGBA, 0xRRGGBBAA — строка с hex-кодом цвета и альфа-каналом.
  • secondary-color — меняет вторичный цвет иконки. Формат такой же, как у color.
  • tertiary-color — меняет третичный цвет иконки. Формат такой же, как у color.
  • opacity — определяет относительную прозрачность объекта. Задается в виде вещественного числа. Работает как scale для alpha: это значение не заменяет, а умножается на уже существующее значение alpha у цвета. Если нужно именно заменить значение alpha, следует использовать задание цвета при помощи color.
  • scale — меняет масштаб объекта. Задается в виде вещественного числа. Размер объекта умножается на scale.

Примеры

Ниже приведен пример как сделать прозрачными все геометрии водных объектов.

https://static-maps.yandex.ru/v1?lang=ru_RU&ll=28.97709,41.005233&z=15&style=tags.all:water|elements:geometry|stylers.opacity:0&apikey=YOUR_API_KEY

Ниже приведен пример как поменять цвет подписей для всех POI и узлов сети общественного транспорта.

https://static-maps.yandex.ru/v1?lang=ru_RU&ll=28.97709,41.005233&z=15&style=tags.any:poi;transit_location|elements:label.text.fill|stylers.color:DD0000&apikey=YOUR_API_KEY

Ниже приведен пример как поменять цвет всех элементов для всех POI, кварталов и полигонов населенных пунктов, которые не являются парками.

https://static-maps.yandex.ru/v1?lang=ru_RU&ll=28.871673,40.997763&z=17&style=types:polygon|tags.any:admin;urban_area;poi|tags.none:park|stylers.color:f9f7aa&apikey=YOUR_API_KEY

Ниже приведен пример как поменять цвет геометрии для всех дорог при масштабах от 13 до 20, и сделать их более прозрачными при масштабах от 17 до 22.

https://static-maps.yandex.ru/v1?lang=ru_RU&ll=28.871673,40.997763&z=17&style=tags.any:road|elements:geometry|stylers[13-20].color:58e3e2|stylers[17-22].opacity:0.2&apikey=YOUR_API_KEY

Ниже приведен пример как отключить все полигоны, убрать иконки направления на дорогах и поменять яркость и насыщенность для всех POI.

https://static-maps.yandex.ru/v1?lang=ru_RU&ll=28.97709,41.005233&z=12&style=elements:geometry|stylers.hue:0d69f2~elements:label.icon|stylers.hue:0d69f2~elements:label.text.fill|stylers.color:083f91&apikey=YOUR_API_KEY