Maps

Разработчикам / REST API для BOOCO Meteor (v 1.x) / Общее API

В данном разделе описываются методы для работы с картами.

Endpoints

Endpoint
Метод
Описание
Queries
Body (JSON)
Значение поля data
Права (ресурс)
Версия
GET

Возвращает список карт, доступных в системе

MapInfo[]

GET

Возвращает данные карты по имени :name

IMap

GET

Возвращает данные карты по имени :name в расширенном формате

ResourceMapInfo

Параметры URL

Name
Описание
Тип значения

Имя карты, которое возвращается при запросе getMapList

string

Описание типов

type MapInfo = {
  name: string;
  title: string;
}

type ResourceMapInfo = {
  map: IMap; // Карта в формате JSON
  name: string; // Имя карты
  resourceIds: string[]; // ID ресурсов, которые есть на карте и которые могут бронироваться
};

interface IMap {
  id?: string; //  Внутреннее ID (не используется)
  name?: string; // Имя карты
  title?: Localization; // Видимое имя карты
  description?: string; // Произвольное описание
  width?: number; // Ширина карты в мм
  height?: number; // Высота карты в мм
  image?: string; // Имя фоновой картинки (без пути)
  imageUrl?: string; // Имя фоновой картинки (с путем)
  scale?: {
    defaultScale?: number; // Масштаб по умолчанию
    maxScale?: number; // Максимальный масштаб
    minScale?: number; // Минимальный масштаб
  };
  layers?: IMapLayer[]; // Слои с данными
}

interface IMapLayer {
  id: string; // ID-слоя (обязательный параметр)
  type: string; // Тип слоя обязательный параметр (furniture, room, desk, poi)
  name?: string;
  title?: Localization; // Название слоя (то что отображается в интерфейсе)
  description?: string; // Произволено описание
  items?: MapItem[]; // Список элементов слоя
}

type MapItem = IMapObject | IMapStatusMarker | IMapMarker;
type MapComponentType = MapItem['componentType'];

interface IMapObject {
  // Статичные объекты на карте (например, мебель)
  id: string; // id объекта
  componentType: 'object'; // Обязательное поле обозначающее тип объекта на слое
  gallery?: string; // galleryId - ID галереи, используется для построения пути к файлу
  x: number; // Координата X (обязательный)
  y: number; // Координата Y (обязательный)
  width?: number; // Ширина (обязательный)
  height?: number; // Высота (обязательный)
  angle?: number;
  originX?: 'center' | 'left' | 'right';
  originY?: 'bottom' | 'center' | 'top';
  image?: string; // Имя файла без пути
  imageUrl?: HTMLImageElement | string; // Имя файла с путем
}

interface IMapStatusMarker {
  id: string; // ID ресурса (соответствует ресурсу в resources)
  type: string; // Тип ресурса: meeting-room, class, hotroo, hotseat, ...
  componentType: 'statusMarker'; // Обязательное поле обозначающее тип объекта на слое
  name?: string;
  gallery?: string; // galleryId - ID галереи, используется для построения пути к файлу
  x: number;
  y: number;
  originX?: 'center' | 'left' | 'right';
  originY?: 'bottom' | 'center' | 'top';
  label: string; // Соответствует имени ресурса
  image?: string; // Имя файла без пути
  imageUrl?: HTMLImageElement | string; // Имя файла с путем
}

interface IMapMarker {
  id: string; // ID объекта
  componentType: 'marker'; // Обязательное поле обозначающее тип объекта на слое
  gallery?: string;
  x: number;
  y: number;
  originX?: 'center' | 'left' | 'right';
  originY?: 'bottom' | 'center' | 'top';
  label?: string;
  image?: string;
  imageUrl?: HTMLImageElement | string;
}