Разработчикам / REST API для BOOCO Meteor (v 1.x) / Общее API
В данном разделе описываются методы для работы с картами.
Endpoint | Метод | Описание | Queries | Body (JSON) | Значение поля data | Права (ресурс) | Версия |
---|---|---|---|---|---|---|---|
GET | Возвращает список карт, доступных в системе |
| |||||
GET | Возвращает данные карты по имени |
| |||||
GET | Возвращает данные карты по имени |
|
Name | Описание | Тип значения |
---|---|---|
Имя карты, которое возвращается при запросе | 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;
}