MapSurfer — rest — langs
Языки
Доступные языки
GET /languages
Структура запроса:
GET /languages
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"code": "en",
"isCurrent": false
},
{
"code": "ru",
"isCurrent": true
}]
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Переключение языка
/?lang=en
Структура запроса:
/?lang=en
Ответ:
Статус: 200 — успешное выполнение
Ответ от основного запроса
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — service
Сервисы
WMS — получение тайла слоя
GET /service/wms
Структура запроса:
GET /service/wms?service=WMS&request=GetMap&version=1.1.1&layers=kziokzn:vamin_kioski_p_vw&
styles=vamin_kioski_p_vw_style_21_03_2011_19_20_16&format=image/png&transparent=true&height=256&
width=256&srs=EPSG:900913&bbox=5283327.395071382,7514065.628545966,5322463.153553393,7553201.387027976&token=mbs90lon2a8
service: сервис запроса WMS
request: название запроса GetMap
version: версия 1.1.1
layers: английское название слоя или слоев через запятую
styles: название стиля или стилей через запятую
format: формат, в котором вернется тайл
transparent: есть ли прозрачность
height: высота тайла
width: ширина тайла
srs: код проекции
bbox: область запроса
cql_filter: строка CQL фильтра
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра format
Содержит описание ошибки
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — ни один слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WMS — запрос легенды слоя
GET /service/wms
Структура запроса:
GET /service/wms?request=GetLegendGraphic&style=vamin_kioski_p_vw_style_21_03_2011_19_20_16&layer=kziokzn:
vamin_kioski_p_vw&format=image/png&token=mbs90lon2a8
request: название запроса GetLegendGraphic
layer: английское название слоя
style: название стиля слоя
format: формат, в котором вернется легенда
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра format
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS — получение WFS слоя
GET /service/wfs
Структура запроса:
GET /service/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=DEMO:kfu_building&outputFormat=json&
bbox=40.14404296875,52.905589081407825,61.23779296875,57.630699148918424&token=mbs90lon2a8
service: сервис запроса WFS
request: название запроса GetFeature
version: версия 1.0.0
typeName: английское название слоя
outputFormat: формат возвращаемых данных
bbox: область запроса слоя
srs: код проекции, по умолчанию EPSG:4326
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра outputFormat
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS — post запросы к геосерверу
POST /service/wfs/{layerId}
Структура запроса:
POST /service/wfs/114
service: сервис запроса WFS
layerId: id слоя
Пример запроса:
Формат: Xml
<wfs:Transaction service="WFS" version="1.0.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:topp="
http://www.openplans.org/topp"
xmlns:gml="
http://www.opengis.net/gml"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd
http://www.openplans.org/topp
http://localhost:8080/geoserver/wfs/DescribeFeatureType?typename=topp:tasmania_roads">
<wfs:Insert>
<topp:tasmania_roads>
<topp:the_geom>
<gml:MultiLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">
494475.71056415,5433016.8189323 494982.70115662,5435041.95096618
</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>
</topp:the_geom>
<topp:TYPE>alley</topp:TYPE>
</topp:tasmania_roads>
</wfs:Insert>
</wfs:Transaction>
// xml запроса к геосерверу, для указанного слоя
Ответ:
Статус: 200 — успешное выполнение, возвращается ответ от Geoserver
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
Запрос sld-файла стиля
GET /service/styles/{layerId}/{styleName}.sld
Структура запроса:
GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=mbs90lon2a8
layerId: id слоя
styleName: название стиля
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: text/xml
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — accesses
Права на отчеты
Список прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses
Структура запроса:
GET /jreports/accesses?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"userId": 60,
"reportId": 25,
"reportName": "Отчет",
"userLogin": "login",
"userName": "ФИО пользователя",
"read": false
},...]
// id пользователя, целое число
// id отчета, целое число
// название отчета, строка
// логин пользователя, строка
// имя пользователя, строка
// доступен просмотр, булевое поле
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses/count
Структура запроса:
GET /jreports/accesses/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
367
}
// количество прав на отчеты
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права на отчеты
Доступно только для пользователей с правами администратора
POST /jreports/accesses
Структура запроса:
POST /jreports/accesses?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"read": true,
"reportId": 368,
"userId": 58
}
// право на просмотр, булевое поле
// id отчета, целое число
// id пользователя, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"read": true,
"userName": "Имя пользователя",
"userId": 58,
"reportId": 368,
"reportName": "Новый отчет"
}
// право на просмотр, булевое поле
// имя пользователя, строка
// id пользователя, целое число
// id отчета, целое число
// название отчета, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сохранение порядка
POST /jreports/ordering
Структура запроса:
POST /jreports/ordering?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"orderings": [{
"id": 748,
"order": 1
},
{
"id": 747,
"order": 2
},…]
}
// порядок групп слоев, объект
// id группы, целое число
// порядок группы, целое число
// id группы, целое число
// порядок группы, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Порядок сохранен
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses.xlsx
Структура запроса:
GET /jreports/accesses.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — orgs
Организации
Список организаций
Доступно только для пользователей с правами администратора
GET /organizations
Структура запроса:
GET /organizations?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 1,
"name": "Организация",
"peopleOrg": false,
"info": null,
"mapExtentBBox": {
"minX": -177.70569153577574,
"minY": -21.944093375487366,
"maxX": -45.8812097484691,
"maxY": 75.49864249479484,
"projection": "EPSG:4326"
}
},...]
// id организации, целое число
// название организации, строка
// организация населения, булевое поле
// информация, строка
// границы карты, объект
// минимальный Х, число с плавающей точкой
// минимальный Y, число с плавающей точкой
// максимальный Х, число с плавающей точкой
// максимальный Y, число с плавающей точкой
// проекция, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание организации
Доступно только для пользователей с правами администратора
POST /organizations
Структура запроса:
POST /organizations?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"info": {
"address": "Адрес компании",
"bank": "21214244",
"bankBik": "1012124",
"bankKpp": "75621",
"bankSchet": "2233253578",
"email": "email",
"fax": "5669988",
"inn": "12154575212",
"kpp": "21254575121",
"phone": "+79655918889"
},
"mapExtent": ["56.72299186350165",
"54.233424150623314",
"54.997573909158405",
"47.86708896501173"],
"name": "Организация"
}
// информация об организации, объект
// адрес организации, строка
// банковские данные, строка
// банк БИК, целое число
// банк КПП, целое число
// банковский счет, целое число
// электронная почта, строка
// факс, строка
// ИНН, целое число
// КПП, целое число
// номер телефона, строка
// минимальный Х, число с плавающей точкой
// минимальный Y, число с плавающей точкой
// максимальный Х, число с плавающей точкой
// максимальный Y, число с плавающей точкой
// название организации, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 100,
"name": "Компания",
"peopleOrg": false,
"info": {
"address": "Адрес компании",
"phone": "2565656",
"fax": "",
"email": "",
"inn": 3223544775102,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"mapExtentBBox": {
"minX": 49.12158966064453,
"minY": 55.78422354209717,
"maxX": 49.1269326210022,
"maxY": 55.78719766974102,
"projection": "EPSG:4326"
}
}
// id организации, целое число
// название организации, строка
// организация населения, булевое поле
// информация, объект
// адрес организации, строка
// номер телефона, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// банковские данные, строка
// банк БИК, целое число
// банк КПП, целое число
// банковский счет, целое число
// границы карты, объект
// минимальный Х, число с плавающей точкой
// минимальный Y, число с плавающей точкой
// максимальный Х, число с плавающей точкой
// максимальный Y, число с плавающей точкой
// проекция, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение организации
Доступно только для пользователей с правами администратора
PUT /organizations/{id}
Структура запроса:
PUT /organizations/35?token=mbs90lon2a8
id: id организации
token: ключ доступа
Пример запроса:
Формат: json
{
"id": 35,
"info": {
"address": "Адрес компании",
"bank": "",
"bankBik": "",
"bankKpp": "",
"bankSchet": "",
"email": "",
"fax": "",
"inn": "3223544775102",
"kpp": "",
"phone": "2565656"
},
"mapExtent":
["55.787197669741026",
"55.78422354209717",
"49.1269326210022",
"49.12158966064453"],
"name": "Компания",
"peopleOrg": false
}
// id организации, целое число
// информация об организации, объект
// адрес организации, строка
// банковские данные, строка
// банк БИК, целое число
// банк КПП, целое число
// банковский счет, целое число
// электронная почта, строка
// факс, строка
// ИНН, целое число
// КПП, целое число
// номер телефона, строка
// население организации, булевое поле
// границы карты, массив
// минимальный Х, число с плавающей точкой
// минимальный Y, число с плавающей точкой
// максимальный Х, число с плавающей точкой
// максимальный Y, число с плавающей точкой
// название организации, строка
// организация населения, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 35,
"name": "Новое название компании",
"peopleOrg": false,
"info": {
"address": "Новый адрес компании",
"phone": "2565656",
"fax": "",
"email": "",
"inn": 3223544775102,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"mapExtentBBox": {
"minX": 49.12158966064453,
"minY": 55.78422354209717,
"maxX": 49.1269326210022,
"maxY": 55.78719766974102,
"projection": "EPSG:4326"
}
}
// id организации, целое число
// название организации, строка
// организация населения, булевое поле
// информация, объект
// адрес организации, строка
// номер телефона, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// банковские данные, строка
// банк БИК, целое число
// банк КПП, целое число
// банковский счет, целое число
// границы карты, объект
// минимальный Х, число с плавающей точкой
// минимальный Y, число с плавающей точкой
// максимальный Х, число с плавающей точкой
// максимальный Y, число с плавающей точкой
// проекция, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление организации
Доступно только для пользователей с правами администратора
DELETE /organizations/{id}
Структура запроса:
DELETE /organizations/35?token=mbs90lon2a8
id: id организации
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт организации
Доступно только для пользователей с правами администратора
GET /organizations.xlsx
Структура запроса:
GET /organizations.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — rights
Права на группы
Список прав на группы
Доступно только для пользователей с правами администратора
GET /organizations/groups
Структура запроса:
GET /organizations/groups?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"organizationId": 1,
"groupId": 13,
"organizationName": "Министерство по ЧС",
"groupName": "Название группы",
"read": false
},...]
// id организации, целое число
// id группы, целое число
// название организации, строка
// название группы, строка
// доступна к просмотру, булевое поле
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав на группы
Доступно только для пользователей с правами администратора
GET /organizations/groups/count
Структура запроса:
GET /organizations/groups/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
56
}
// количество прав на группы, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права на группу
Доступно только для пользователей с правами администратора
POST /organizations/groups
Структура запроса:
POST /organizations/groups?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"groupId": 13,
"organizationId": 1,
"read": true
}
// id группы, целое число
// id организации, целое число
// доступна к просмотру, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Право на группу добавлено
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав на группу
Доступно только для пользователей с правами администратора
GET /organizations/groups.xlsx
Структура запроса:
GET /organizations/groups.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — layers
Слои
Список слоев
GET /layers
Структура запроса:
GET /layers?token=mbs90lon2a8
token: ключ доступа
Получение списка слоев по английскому названию
GET /layers?name=testlayer?token=mbs90lon2a8
name: английское название слоя или слово, встречающееся в названии списка слоев
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"layers": [{
"order": 9,
"layer": {
"id": 135,
"name": "testlayerpoint",
"info": {
"id": 135,
"typeName": "test:testlayerpoint1410257743497_vw",
"style": "point",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs"
},
"isEditable": true,
"fields": {
"id": 250,
"name": "Field",
"nameRu": "Поле",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
},
"groupId": 12
}]
}
// массив слоев
// порядковый номер в списке, целое число
// объект слоя
// id слоя, целое число
// название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// является ли редактируемым, булевое поле
// объект полей
// id поля, целое число
// английское название поля, строка
// русское название поля , строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество слоев
GET /layers/count
Структура запроса:
GET /layers/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
237
}
// количество слоев
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание слоя
POST /layers
Структура запроса:
POST /layers?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"rusName": "Атрибут",
"name": "attribute",
"type": "str",
"isTitle": false,
"isView": true
}],
"customFields": {
"field_1": {
"field_id": 41,
"value": "1"
},
},
"geometryType": "point",
"groupId": 1053,
"dataStoreId": 12,
"fromFile": false,
"isEditable": true,
"layerType": "vector",
"name": "Novyi-sloy",
"styles": {
"isBase": true
},
"title": "Новый слой"
}
// данные об атрибутах, массив
// русское название, строка
// английское название, строка
// тип, строка
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// дополнительные поля, объект
// название дополнительного поля
// id поля, целое число
// значение поля, строка
// тип геометрии, строка
// id группы, целое число
// id хранилища, целое число
// из файла, булевое поле
// является редактируемым, булевое поле
// тип слоя, строка
// английское название слоя, строка
// стили, объект
// является ли стиль простым, булевое поле
// заголовок, строка
Примечание:
В зависимости от выбранного типа геометрии в «styles» могут передаваться следующие параметры:
- isBase — базовый стиль (булевое поле)
- isSymple — простой стиль (булевое поле)
- style — расширенный стиль (строка — описывается geocss)
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms"
},
"isEditable": true,
"fields": [{
"id": 3452,
"name": "parameter",
"nameRu": "parameter",
"order": 1,
"title": false,
"view": true,
"type": "str"
}],
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число
// название слоя, строка
// информация о слое, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// является ли редактируемым, булевое поле
// информация об атрибутах, массив
// id атрибута, целое число
// английское название атрибута, строка
// русское название атрибута, строка
// порядковый номер в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы, целое число
// id хранилища данных, целое число
// порядковый номер в списке, целое число
// тип геометрии, строка
// название хранилища, строка
// тип слоя, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение слоя
PUT /layers/{layerId}
Структура запроса:
PUT /layers/365?token=mbs90lon2a8
layerId: id изменяемого слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "nomer",
"rusName": "NOMER",
"type": "Long",
"isGeometryField": false,
"visible": null,
"view": true
},…],
"customFields": {
"field": {
"field_id": 501,
"value": ""
},
},
"dataStoreId": "21",
"fileName": "p19bmqvgl6101t1996124718ckqp4v.zip",
"fromFile": true,
"geometryType": "polygon",
"groupId": 1053,
"isEditable": true,
"layerType": "vector",
"name": "sloj_sloj",
"styles": {
"isBase": false,
"isSimple": true,
"style": "*{fill:#0000FF;}"
},
"title": "Слой слой",
"withProjection": true
}
// данные об атрибутах, массив
// русское название, строка
// английское название, строка
// тип, строка
// является геометрией, булевое поле
// дополнительные поля, объект
// название дополнительного поля
// id поля, целое число
// значение поля, строка
// id хранилища, строка
// название файла, строка
// из файла, булевое поле
// тип геометрии, строка
// id группы, целое число
// является редактируемым, булевое поле
// тип слоя, строка
// название слоя, строка
// стили, объект
// является ли стиль базовым, булевое поле
// является ли стиль простым, булевое поле
// geocss стиль
// заголовок, строка
// с проекцией, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 365,
"name": "Название слоя",
"info": {
"id": 365,
"typeName": "test:nazvanie_sloya_21399556133349_vw",
"style": "nazvanie_sloya_21399556133349style",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs"
},
"isEditable": true,
"fields": [{
"id": 5972,
"name": "pole1",
"nameRu": "Атрибут_1",
"order": 1,
"title": true,
"view": true,
"type": "string"
},],
"dataStoreName": "ssc_inf",
"layerType": "vector",
"groupId": 117,
"dataStoreId": 21,
"order": 1,
"geometryType": "multipoint"
}
// id слоя, целое число
// название слоя, строка
// информация о слое, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// является ли редактируемым, булевое поле
// информация об атрибутах, массив
// id атрибута, целое число
// английское название атрибута, строка
// русское название атрибута, строка
// порядковый номер в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// название хранилища, строка
// тип слоя, строка
// id группы, целое число
// id хранилища данных, целое число
// порядковый номер в списке, целое число
// тип геометрии, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей слоя
PATCH /layers/{layerId}
Структура запроса:
PATCH /layers/1413?token=mbs90lon2a8
layerId: id изменяемого слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"rusName": "Атрибут№1",
"name": "Attribute№1",
"type": "num",
"isTitle": false,
"isView": true
}],
"customFields": {
"newfield": {
"field_id": 501,
"value": "value"
},
},
"groupId": "1093",
"styles": {
"isBase": true
},
"title": "New layer name"
}
// данные об атрибутах, массив
// русское название, строка
// английское название, строка
// тип, строка
// является заголовком, булевое поле
// дополнительные поля, объект
// название дополнительного поля
// id поля, целое число
// значение поля, строка
// id группы, целое число
// стили, объект
// является ли стиль базовым, булевое поле
// заголовок, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 1413,
"name": "New layer name",
"info": {
"id": 1413,
"typeName": "test:new_layer1419506827493_vw",
"style": "point",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs"
},
"isEditable": true,
"fields": [{
"id": 15236,
"name": "newfield",
"nameRu": "Новое поле",
"order": 1,
"title": false,
"view": true,
"type": "str"
}],
"groupId": 1093,
"dataStoreId": 21,
"order": 6,
"geometryType": "multipoint",
"layerType": "vector",
"dataStoreName": "ssc_inf"
}
// id слоя, целое число
// название слоя, строка
// информация о слое, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// является ли редактируемым, булевое поле
// информация о дополнительных полях, массив
// id поля, целое число
// английское название поля, строка
// русское название поля, строка
// порядковый номер в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы, целое число
// id хранилища данных, целое число
// порядковый номер в списке, целое число
// тип геометрии, строка
// тип слоя, строка
// название хранилища, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление слоя
DELETE /layers/{layerId}
Структура запроса:
DELETE /layers/14?token=mbs90lon2a8
layerId: id удаляемого слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт слоев
GET /layers.xlsx
Структура запроса:
GET /layers.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою
GET /layers/{layerId}
Структура запроса:
GET /layers/136?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"layer": {
"order": 2,
"layer": {
"id": 136,
"name": "Тестовый слой",
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id"
}
},
"isEditable": true,
"fields": [
{
"id": 4423,
"name": "Field",
"nameRu": "Поле 1",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
],
"customFields": null,
"dataStoreName": "ssc_inf",
"layerType": "vector",
"isKosmosnimok": false,
"access": {
"edit": true,
"write": true,
"read": true
},
"geometryType": "multipolygon",
"cluster": null
},
"groupId": 14
}
}
// объект
// порядковый номер в списке, целое число
// объект слоя
// id слоя, целое число
// русское название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// данные о наличии медиа информации, объект
// есть ли медиа информация, булевое поле
// поле для первичного ключа, строка
// является ли редактируемым, булевое поле
// массив полей
// id поля, целое число
// английское название поля, строка
// русское название поля, строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип поля, строка
// дополнительные поля, строка
// название хранилища данных, строка
// тип слоя, строка
// является ли космоснимком, булевое поле
// права текущего пользователя на слой
// на изменение/удаление слоя
// на добавление/изменение/удаление объектов слоя
// на чтение
// тип геометрии, строка
// кластер, строка
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою, исключая данные о группе слоя
GET /layers/{layerId}/info
Структура запроса:
GET /layers/132/info?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"layer": {
"id": 136,
"name": "Тестовый слой",
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id",
}
},
"isEditable": true,
"fields": [
{
"id": 4423,
"name": "vid",
"nameRu": "Поле1",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
],
"customFields": null,
"dataStoreName": "ssc_inf",
"layerType": "vector",
"isKosmosnimok": false,
"access": {
"edit": true,
"write": true,
"read": true
},
"geometryType": "multipolygon",
"cluster": null
}
}
// объект слоя
// id слоя, целое число
// русское название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// данные о наличии медиа информации, объект
// есть ли медиа информация, булевое поле
// поле для первичного ключа, строка
// является ли редактируемым, булевое поле
// массив полей
// id поля, целое число
// английское название поля, строка
// русское название поля, строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип поля, строка
// дополнительные поля, строка
// название хранилища данных, строка
// тип слоя, строка
// является ли космоснимком, булевое поле
// права текущего пользователя на слой
// на изменение/удаление слоя
// на добавление/изменение/удаление объектов слоя
// на чтение
// тип геометрии, строка
// кластер, строка
Статус: 403 — у вас нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — layerInfo
Информация о слоях
Граница слоя
GET /layers/{layerId}/bbox
Структура запроса:
GET /layers/199/bbox?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"boundingBox": {
"minx": "49.053",
"maxx": "49.24",
"miny": "55.739",
"maxy": "55.863",
"crs": "EPSG:4326"
}
}
// объект
// минимальный x, число с плавающей точкой
// минимальный y, число с плавающей точкой
// максимальный x, число с плавающей точкой
// максимальный y, число с плавающей точкой
// код проекции, строка
Статус: 403 — нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Метаданные слоя
GET /layers/{layerId}/metadata
Структура запроса:
GET /layers/179/metadata?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"metadata": {
"id": 179,
"owner": "Владелец",
"dataCreate": "2011.12.28 09.47",
"dataUpdate": "2011.12.28 09.47",
"itemsCount": 45,
"type": {
"id": 1,
"name": "Космоснимки",
"fieldList": [
{
"id": 1,
"name": "Облачность",
"order": 1,
"inTable": true,
"inTableName": "clouds",
"fieldType": {
"id": 2,
"name": "Облачность",
"control": "input_integer",
"geomType": null,
"library": false,
"libraryData": {}
},
"necessary": false
}]
},
"additionalFieldValues": [
{
"field": {
"id": 4,
"name": "name",
"order": 6,
"inTable": false,
"inTableName": null,
"fieldType": {
"id": 3,
"name": "целое число",
"control": "input_integer",
"geomType": null,
"library": false,
"libraryData": {}
},
"necessary": false
},
"value": "значение"
}
],
"tableData": {
"clouds": "45",
"tecy_777": null,
"sputnik_id": "1",
"data": "2011-12-14 00:00:00+04",
"test777": "1",
"geom": null,
"layer_id": "179",
"quicklook": "kosmosnimok2012_02_08_05_06_06.jpg"
}
}
}
// метадата, объект
// id слоя, целое число
// владелец слоя, строка
// дата создания, строка
// дата обновления, строка
// количество объектов, целое число
// тип метаданных, объект
// id типа, целое число
// название типа, строка
// массив полей
// объект поля
// id поля, целое число
// название, строка
// порядок отображения, целое число
// содержится ли значение в основной таблице, булевое поле
// название поля в основной таблице
// тип поля, объект
// id типа, целое число
// название типа, строка
// управляющий элемент, который используется, строка
// тип геометрии, строка
// нужно ли искать значение поля в словаре, булевое поле
// данные словаря, объект
// является ли обязательным,булевое поле
// массив дополнительных полей
// объект
// объект поля
// id поля,
// название, строка
// порядок отображения, целое число
// содержится ли значение в основной таблице, булевое поле
// название поля в основной таблице
// тип поля, объект
// id: типа, целое число
// название типа, строка
// управляющий элемент, который используется, строка
// тип геометрии, строка
// нужно ли искать значение поля в словаре, булевое поле
// данные словаря, объект
// является ли обязательным,булевое поле
// значение поля
// основная таблица с данными, объект
// поле таблицы и его значение
Статус: 403 — нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отображение превью-картинки у метаданных, если она присутствует
GET/layers/{layerId}/metadata/quicklook/{file}
Структура запроса:
GET /layers/179/metadata/quicklook/kosmosnimok2012_02_08_05_06_06.jpg?token=mbs90lon2a8
layerId: id слоя
file: название файла, приходит в качестве значения поля превью у метаданных
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 — картинка не найдена
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Атрибуты слоя
GET /layers/{layerId}/attributes
Структура запроса:
GET /layers/199/attributes?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"attributes": [{
"name": "pole1",
"type": "string",
"isGeometryField": false
}],
"geometryType": "POLYGON",
"realGeometryType": "MULTIPOLYGON"
}
// массив атрибутов
// название атрибута, строка
// тип атрибута, строка
// является ли полем с геометрией, булевое поле
// тип геометрии (POINT, LINE, POLYGON), строка
// реальный тип геометрии (POINT, MULTIPOINT, LINE,
// MULTILINE, POLYGON, MULTIPOLYGON), строка
Статус: 403 — нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
GET /layers/{layerId}/style
Структура запроса:
GET /layers/199/style?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"style": {
"styleName": "Polygon",
"geoCss": "*{\n mark: symbol(\"circle\");\n}",
"base": false,
"simple": true,
"styleSld": " "
},...]
// название стиля, строка
// css стиля, строка
// является ли базовым, булевое поле
// является ли простым, булевое поле
// sld стиля, строка
Статус: 403 — нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Тип геометрии стиля слоя
GET /layers/styles/base/{geomType}
Структура запроса:
GET /layers/styles/base/point?token=mbs90lon2a8
geomType: тип геометрии
token: ключ доступа
Примечание:
В «geomType» пользователь может передать следующие параметры:
- point — точка
- line — линия
- polygon — полигон
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"style":{
"styleName": "point",
"geoCss": "* {\n mark-opacity: 1.0;\n}",
"base": true,
"simple": false,
"styleSld": ""
}
}
// информация о стиле, объект
// название стиля, строка
// css стиля, строка
// является ли базовым, булевое поле
// является ли простым, булевое поле
// sld стиля, строка
Статус: 403 — нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Тип геометрии слоя
GET /layers/{layerId}/geometrytype
Структура запроса:
GET /layers/25/geometrytype?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"geometryType":"MULTIPOLYGON"
}
// название типа геометрии
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Кластеры слоя
GET /layers/{layerId}/cluster
Структура запроса:
GET /layers/25/cluster?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 11179,
"turned": true,
"maxZoom": 16,
"parameters": [{
"id": 401,
"objectsCount": 0,
"icon": {
"id": 99,
"name": "red",
"width": 73,
"height": 72
},
"labelColor": "ffffff"
}]
}
// id слоя, целое число
// кластеризация включена, булевое поле
// максимальный зум для кластеризации, целое число
// параметры, массив
// id, целое число
// количество объектов, целое число
// иконка, объект
// id иконки, целое число
// название иконки, строка
// ширина, целое число
// высота, целое число
// цвет подписи, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Индексация слоя
GET /layers/{layerId}/reindex
Структура запроса:
GET /layers/34/reindex?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Принят запрос на индексацию
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — layerGroups
Группы слоев
Список групп слоев
GET /groups
Структура запроса:
GET /groups?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Группа 1",
"order": "1"
}]
}
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// порядковый номер группы в списке, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers
Структура запроса:
GET /groups/withLayers?token=mbs90lon2a8
token: ключ доступа
Поиск списка групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers?name=Группа?token=mbs90lon2a8
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Новая группа",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Название слоя",
"info": {
"id": 10,
"typeName": "name",
"style": "style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "Field",
"nameRu": "Поле",
"order": 1,
"title": false,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}]
}
// массив групп
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
// массив слоев
// порядковый номер в списке, целое число
// информация по слою, объект
// id слоя, целое число
// русское название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// является ли редактируемым, булевое поле
// массив полей
// id поля, целое число
// английское название поля, строка
// русское название поля , строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая краткую информацию по принадлежащим им слоям
GET /groups/shortdata/withLayers
Структура запроса:
GET /groups/shortdata/withLayers?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа",
"order": "1",
"groupLayers": [{
"layer": {
"id": 10,
"name": "Слой",
"enabled": false,
"info": {
"id": 10,
"typeName": "test:test_layer",
"style": "test_layer_a",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
},
"order": 1,
"groupId": 32
}]
}]
}
// массив групп
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
// массив слоев
// информация по слою, объект
// id слоя, целое число
// русское название слоя, строка
// включен ли слой по умолчанию, булевое поле
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// порядок слоя в списке, целое число
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по названию
GET /groups
Структура запроса:
GET /groups?name=Пункт?token=mbs90lon2a8
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа 1",
"order": "1"
}]
}
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// порядковый номер группы в списке, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по ID
GET /groups/{groupId}
Структура запроса:
GET /groups/32/style?token=mbs90lon2a8
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Базовые слои",
"order": 1
}
}
// группа, объект
// id группы, целое число
// название группы, строка
// порядок группы в списке
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группа слоев, включая полную информацию по принадлежащим ей слоям
GET /groups/{groupId}/withLayers
Структура запроса:
GET /groups/32/withLayers?token=mbs90lon2a8
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Населенные пункты",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Населенные пункты",
"info": {
"id": 10,
"typeName": "test:test_a",
"style": "style_test__a",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "test",
"nameRu": "Поле1",
"order": 1,
"title": true,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}
}
// группа, объект
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
// массив слоев
// порядковый номер, целое число
// информация по слою, объект
// id слоя, целое число
// русское название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// массив полей
// id поля, целое число
// английское название поля, строка
// русское название поля , строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание группы слоя
Доступно только для пользователей с правами администратора
POST /layers/groups
Структура запроса:
POST /layers/groups?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Название новой группы слоев"
}
// название группы, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Населенные пункты",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Населенные пункты",
"info": {
"id": 10,
"typeName": "test:test_a",
"style": "style_test__a",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "test",
"nameRu": "Поле1",
"order": 1,
"title": true,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}
}
// группа, объект
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
// массив слоев
// порядковый номер, целое число
// информация по слою, объект
// id слоя, целое число
// русское название слоя, строка
// информация по слою, объект
// id слоя, целое число
// английское название слоя, строка
// название стиля, строка
// тип сервиса, WMS/WFS
// является ли полигоном, булевое поле
// url для запроса, строка
// массив полей
// id поля, целое число
// английское название поля, строка
// русское название поля , строка
// порядок следования в списке, целое число
// является ли заголовком, булевое поле
// показывать ли поле, булевое поле
// тип, строка
// id группы
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сохранение порядка группы слоя
Доступно только для пользователей с правами администратора
POST/layers/groups/ordering
Структура запроса:
POST /layers/groups/ordering?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"orderings": [{
"id": 1093,
"order": 1
},
{
"id": 413,
"order": 2
},…]
}
// порядок групп слоев, объект
// id группы, целое число
// порядок группы, целое число
// id группы, целое число
// порядок группы, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение группы слоя
Доступно только для пользователей с правами администратора
PUT /layers/groups/{id}
Структура запроса:
PUT /layers/groups/27?token=mbs90lon2a8
id: id группы слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 27,
"name": "Новое название группы слоя",
"order": 1
}
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление группы слоя
Доступно только для пользователей с правами администратора
DELETE /layers/groups/{id}
Структура запроса:
DELETE /layers/groups/27?token=mbs90lon2a8
id: id группы слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт групп слоя
Доступно только для пользователей с правами администратора
GET /layers/groups.xlsx
Структура запроса:
GET /layers/groups.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — objects
Объекты слоя
Создание объекта слоя
POST /layers/{layerId}/feature
Структура запроса:
POST /layers/145/feature?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "Атрибут",
"value": "123456",
"id": 4677
}],
"files": [{
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc",
"name": "gloreg.doc"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,
60.58696734225869]]
},
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg",
"name": "Lighthouse.jpg"
}]
}
// список атрибутов
// название атрибута, строка
// значение, строка
// id, целое число
// список файлов
// uuid загруженного файла, строка
// название файла, строка
// объект геометрии
// тип геометрии, строка
// координаты, массив
// веб-страницы
// адрес, строка
// описание, строка
// размер
// ширина, целое число
// высота, целое число
// список фотографий
// uuid загруженной фотографии, строка
// название фотографии, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"insert": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение объекта слоя
PUT /layers/{layerId}/feature/{featureId}
Структура запроса:
PUT /layers/154/feature/3?token=mbs90lon2a8
layerId: id слоя
featureId: id объекта
token: ключ доступа
Пример запроса:
Формат: json
{
"addedFiles": ["1"],
"addedPhotos": ["2"],
"attributes": [{
"name": "Attribute",
"value": "12.52",
"id": 15236
}],
"files": [{
"uuid": "p19borhvav1kms1ks1vv62au1pfn7.xls",
"name": "cars.xls"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[48.768310546875,
56.69244163539978]]
},
"pages": [{
"url": "http://www.page.com",
"objectId": 661,
"description": "Описание страницы",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "add-object-line.png"
}]
}
// список из идентификаторов ранее загруженных файлов
// список из идентификаторов ранее загруженных фотографий
// список атрибутов
// название атрибута, строка
// значение, строка
// id, целое число
// список файлов
// uuid файла, строка
// название файла, строка
// объект геометрии
// тип геометрии, строка
// координаты, массив
// список веб-страниц
// адрес страницы, строка
// id объекта, целое число
// описание страницы, строка
// размер
// ширина, целое число
// высота, целое число
// список фотографий
// uuid фотографии, строка
// название фотографии, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"update": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей объекта слоя
PATCH /layers/{layerId}/feature/{featureId}
Структура запроса:
PATCH /layers/154/feature/3?token=mbs90lon2a8
layerId: id слоя
featureId: id объекта
token: ключ доступа
Пример запроса:
Формат: json
{
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "new_photo.png"
}]
}
// список фотографий
// uuid фотографии, строка
// название фотографии, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"addedFiles": ["1"],
"addedPhotos": [],
"attributes": [{
"name": "Attribute",
"value": "12.52",
"id": 15236
}],
"files": [{
"uuid": "p19borhvav1kms1ks1vv62au1pfn7.xls",
"name": "cars.xls"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[48.768310546875,
56.69244163539978]]
},
"pages": [{
"url": "http://www.page.com",
"objectId": 661,
"description": "Описание страницы",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "new_photo.png"
}]
}
// список из идентификаторов ранее загруженных файлов
// список из идентификаторов ранее загруженных фотографий
// список атрибутов
// название атрибута, строка
// значение, строка
// id, целое число
// список файлов
// uuid файла, строка
// название файла, строка
// объект геометрии
// тип геометрии, строка
// координаты, массив
// список веб-страниц
// адрес страницы, строка
// id объекта, целое число
// описание страницы, строка
// размер
// ширина, целое число
// высота, целое число
// список фотографий
// uuid фотографии, строка
// название фотографии, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление объекта слоя
DELETE /layers/{layerId}/feature/{featureId}
Структура запроса:
DELETE /layers/154/feature/3?token=mbs90lon2a8
layerId: id слоя
featureId: id объекта
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов в точке
POST /layers/feature
Структура запроса:
POST /layers/feature?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"layersId": ["198","245","345"],
"size": {
"x": 1920,
"y": 778
},
"extent": {
"_southWest": {
"lat": 55.488191455802244,
"lng": 47.94158935546874
},
"_northEast": {
"lat": 56.08889483995169,
"lng": 50.57830810546875
}
},
"point": {
"x": 859,
"y": 364
}
}
// массив id слоев, где будет осуществляться поиск
// размер области видимости в пикселях, объект
// пикселей по оси x, целое число
// пикселей по оси y, целое число
// область видимости карты, объект
// координаты нижней левой точки на карте в градусах, объект
// широта нижней левой точки, число с плавающей точкой
// долгота нижней левой точки, число с плавающей точкой
// координаты верхней правой точки на карте в градусах, объект
// широта верхней правой точки, число с плавающей точкой
// долгота верхней правой точки, число с плавающей точкой
// точка центра области видимости в пикселях, объект
// координата х, целое число
// координата y, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"data": {
"kziokzn:vamin_kioski_p_vw": {
"features": [{
"fid": "141",
"zayavit": "ОАО Вамин Татарстан",
"syyinfo":"Есть",
"srnaimenovanie":"Ново-савиновский",
"geom":"",
"nomerdoma":"47",
"sunaimenovanie":"10летОктября[П, Ст.Победилово]",
"syinfo":"Есть",
"svinfo":"Существующий"
}
],
"layerId":198,
"geomFieldName":null
}
}
}
// объект найденных данных
// английское название слоя, где найдены объекты
// массив объектов
// первичный ключ объекта, строка
// поля объекта и их значения
// id слоя
// поле геометрии либо null
Статус: 403 — нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов в области
POST /layers/feature/bbox
Структура запроса:
POST /layers/feature/bbox?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"layersId": ["198","234","23"],
"srs": "EPSG:4326",
"extent": {
"_southWest": {
"lng": 49.04296875,
"lat": 55.754940702479146
},
"_northEast": {
"lng": 49.299774169921875,
"lat": 55.90457539720638
}
}
}
// массив id слоев, где будет осуществляться поиск
// проекция запроса, строка
// область поиска, объект
// координаты нижней левой точки области, объект
// широта нижней левой точки, число с плавающей точкой
// долгота нижней левой точки, число с плавающей точкой
// координаты верхней правой точки области, объект
// широта верхней правой точки, число с плавающей точкой
// долгота верхней правой точки, число с плавающей точкой
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"data": {
"kziokzn:vamin_kioski_p_vw": {
"features": [
{
"fid": "141",
"zayavit": "ОАО Вамин Татарстан",
"syyinfo":"Есть",
"srnaimenovanie":"Ново-савиновский",
"geom":" ",
"nomerdoma":"47",
"sunaimenovanie":"10летОктября[П, Ст.Победилово]",
"syinfo":"Есть",
"svinfo":"Существующий"
}
],
"layerId":198,
"geomFieldName":null
}
}
}
// объект найденных данных
// английское название слоя, где найдены объекты, строка
// массив объектов
// первичный ключ объекта, строка
// поля объекта и их значения
// id слоя, целое число
// поле геометрии, строка
Статус: 403 — нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной ко всем объектам слоя
GET /layers/eis/{layerId}
Структура запроса:
GET /layers/eis/198?token=mbs90lon2a8
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"layerObjectId": 1,
"files": [
{
"objectId": "1",
"url": "/layers/eis/7392/1/photo/1",
"fileName": "Chrysanthemum.jpg",
"type": {
"id": 3,
"name": "photo"
},
"asUrl": false,
"width": null,
"height": null
}
]
}
]
// массив объектов с медиафайлами
// объект слоя
// id объекта слоя
// массив найденных прикрепленных файлов
// id файла
// путь к файлу
// название файла
// тип файла
// id типа,
// название типа, может быть photo, video, audio, file, page
// представлен ли файл как ссылка
// ширина окна, для страниц (type=page)
// высота окна, для страниц (type=page)
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной к объекту слоя
GET /layers/eis/{layerId}/{objectId}
Структура запроса:
GET /layers/eis/198/141?token=mbs90lon2a8
layerId: id слоя
objectId: значение первичного ключа объекта
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"files": [
{
"url": "/layers/eis/198/141/photo/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 3,
"name": "photo"
},
"asUrl": false,
"width": null,
"height": null
},
{
"url": "/layers/eis/198/141/file/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 4,
"name": "file"
},
"asUrl": false,
"width": null,
"height": null
}
]
}
// массив найденных прикрепленных файлов
// путь к файлу
// название файла
// тип файла
// id типа,
// название типа, может быть photo, video, audio, file,page
// представлен ли файл как ссылка, булевое поле
// ширина окна, для страниц (type=page)
// высота окна, для страниц (type=page)
// адрес, строка
// название файла, строка
// тип, объект
// id типа, целое число
// название, строка
// представлен ли файл как ссылка, булевое поле
// ширина, целое число
// высота, целое число
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа файла, прикрепленного к объекту слоя
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}
Структура запроса:
GET /layers/eis/198/141/photo/247?token=mbs90lon2a8
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
token: ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}
Структура запроса:
GET /layers/eis/198/141/photo/247/100?token=mbs90lon2a8
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
height: высота для масштабирования
token: ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте и ширине
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}/{width}
Структура запроса:
GET /layers/eis/198/141/photo/247/100/150?token=mbs90lon2a8
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
height: высота для масштабирования
width: ширина для масштабирования
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отображение прикрепленного файла
GET /layers/eis/{layerId}/{objectId}/{fileType}/{fileId}
Структура запроса:
GET /layers/eis/198/141/file/247?token=mbs90lon2a8
layerId: id слоя
objectId: первичный ключ объекта
fileType: тип файла: photo, video, audio, file
fileId: первичный ключ файла
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от типа отдаваемого файла
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — layerAccess
Права доступа
Список прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses
Структура запроса:
GET /layers/accesses?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"userId": 60,
"layerId": 41,
"groupId": 3,
"organizationId": 1,
"layerOrder": 9,
"groupOrder": 6,
"read": true,
"write": false,
"edit": true,
"isEditable": true,
"uniqueId": 257698053339,
"layerName": "Название слоя",
"groupName": "Название группы",
"userLogin": "login",
"userName": "ФИО пользователя"
},...]
// id пользователя, целое число
// id слоя, целое число
// id группы, целое число
// id организации, целое число
// порядковый номер слоя, целое число
// порядковый номер группы, целое число
// доступен к просмотру, булевое поле
// доступен к управлению, булевое поле
// доступен к редактированию, булевое поле
// редактируемый, булевое поле
// уникальный id, целое число
// название слоя, строка
// название группы, строка
// пользовательский логин, строка
// имя пользователя, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses/count
Структура запроса:
GET /layers/accesses/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
342
}
// количество прав доступа
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права доступа
Доступно только для пользователей с правами администратора
POST /layers/accesses
Структура запроса:
POST /layers/accesses?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"edit": false,
"groupId": 18,
"groupName": "Новое название группы слоя",
"groupOrder": 1,
"isEditable": true,
"layerId": 36,
"layerName": "Название слоя",
"layerOrder": 25,
"organizationId": 1,
"read": true,
"uniqueId": 257698051686,
"userId": 60,
"userLogin": "login",
"userName": "ФИО пользователя",
"write": false
}
// право на редактирование, булевое поле
// id группы, целое число
// название группы, строка
// порядковый номер группы, целое число
// доступен к редактированию, булевое поле
// id слоя, целое число
// название слоя, строка
// порядковый номер слоя, целое число
// id организации, целое число
// право на просмотр, булевое поле
// уникальный id, целое число
// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// право на управление, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"read": true,
"write": false,
"edit": false,
"userId": 60,
"groupId": 18
}
// право на просмотр, булевое поле
// право на управление, булевое поле
// право на редактирование, булевое поле
// id пользователя, целое число
// id группы, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses.xlsx
Структура запроса:
GET /layers/accesses.xlsx?token=mbs90lon2a88
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Хранилища слоев
GET /layers/datastores
Структура запроса:
GET /layers/datastores?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 213,
"name": "for_delete",
"host": "178.213.247.170",
"port": 5432,
"database": "ssc",
"login": "julia",
"isInfrastructure": false,
"schemaName": "rcku"
},...]
// id хранилища, целое число
// наименование хранилища, строка
// хост, строка
// порт, целое число
// название базы данных, строка
// логин пользователя, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки