You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

Структура хранения легенды слоёв

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

Каждый элемент структуры включает:

  • Диапазон зума (from и to) указывает, на каких уровнях масштаба применяется стиль.
  • Описание зума (zoomDescription) текстовое пояснение (необязательно).
  • Массив properties, содержащий набор стилей.

Каждый стиль в массиве properties состоит из четырёх полей:

  • color цвет заливки:
    • type: тип заливки (из перечисления ColorType);
    • colorValues: массив цветов в формате HEX.
  • stroke (опционально) — обводка:
    • type: тип линии обводки (из перечисления StrokeType);
    • colorValues: массив цветов в формате HEX.
  • title уникальное текстовое название стиля (отображается в легенде).
  • geometryType тип геометрии (из перечисления GeometryType).

Формат структуры:

json
[
  {
    "zoom": {
      "from": int,
      "to": int
    },
    "zoomDescription": string,
    "properties": [
      {
        "color": {
          "type": ColorType,
          "colorValues": [string]
        },
        "stroke": {  // опционально
          "type": StrokeType,
          "colorValues": [string]
        },
        "title": string,
        "geometryType": GeometryType
      }
    ]
  }
]

Соответствие типов для легенды слоёв

GeometryType тип геометрии:

  • 0 Точка (Point)
  • 1 Линия (Line)
  • 2 Полигон (Polygon)
  • 3 Тепловая карта (HeatMap)

ColorType тип заливки:

  • 0 Сплошной цвет (Solid)
  • 1 Градиент (Gradient)
  • 2 Пунктир (Dashed)
  • 3 Прозрачный (Transparent)

StrokeType тип обводки:

  • 0 Сплошная линия (Solid)
  • 1 Двойная линия (Double), например, у слоя «Опоры освещения»
  • 2 Пунктирная линия (Dashed)
Пример легенды: слой ДТП stat.gibdd.ru

JSON-представление:

json
[
  {
    "zoom": { "from": "min", "to": "7" },
    "properties": [
      {
        "color": {
          "type": "1",
          "colorValues": ["#67a9cf", "#ef8a62", "#b2182b"]
        },
        "title": "Тепловая карта",
        "geometryType": "3"
      }
    ]
  },
  {
    "zoom": { "from": "7", "to": "14" },
    "properties": [
      { "color": { "type": "1", "colorValues": ["#FFE800"] }, "title": "0 - 1 погибших", "geometryType": "0" },
      { "color": { "type": "1", "colorValues": ["#FFB700"] }, "title": "1 - 3 погибших", "geometryType": "0" },
      { "color": { "type": "1", "colorValues": ["#FF7400"] }, "title": "3 - 5 погибших", "geometryType": "0" },
      { "color": { "type": "1", "colorValues": ["#FF0000"] }, "title": "более 5 погибших", "geometryType": "0" }
    ],
    "zoomDescription": [
      "Кластеры",
      "Цвет: количество погибших",
      "Контур: наличие погибших",
      "Число: количество ДТП в кластере"
    ]
  },
  {
    "zoom": { "from": "14", "to": "max" },
    "properties": [
      { "color": { "type": "0", "colorValues": ["#FFBE40"] }, "title": "Съезд с дороги", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#0772A1"] }, "title": "Наезд на препятствие", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ff0000"] }, "title": "Наезд на пешехода", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#D2006B"] }, "title": "Опрокидывание", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#FF8700"] }, "title": "Наезд на велосипедиста", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ffc59a"] }, "title": "Наезд на животное", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ff4149"] }, "title": "Наезд на лицо, не являющееся участником дорожного движения, осуществляющее несение службы", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ff2800"] }, "title": "Наезд на лицо, не являющееся участником дорожного движения, осуществляющее какую-либо другую деятельность", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ffc59a"] }, "title": "Наезд на внезапно возникшее препятствие", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#b486ff"] }, "title": "Отбрасывание предмета", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#ff1c4d"] }, "title": "Наезд на лицо, не являющееся участником дорожного движения, осуществляющее производство работ", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#5EC8AF"] }, "title": "Наезд на стоящее ТС", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#a8beff"] }, "title": "Падение груза", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#52026E"] }, "title": "Падение пассажира", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#81A9FF"] }, "title": "Столкновение", "geometryType": "0" },
      { "color": { "type": "0", "colorValues": ["#808080"] }, "title": "Иной вид ДТП", "geometryType": "0" }
    ]
  }
]
  • No labels