Авторизация
Авторизация на сервере
POST /auth/token
Пример запроса
{
"login": "testlogin",
"password": "12345"
}
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"token": "ethryhetyjtyj",
"refreshToken": "ethryhetyjtyj",
"ttl": 3600
}
Статус: 401 - логин или пароль переданы неверно
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Обновление ключа доступа
GET /auth/token/refresh
Структура запроса:
GET /auth/token/refresh?refreshToken=738975947453
refreshToken: ключ для обновления ключа доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"token": "ethryhetyц4564",
"refreshToken": "yrjryukryukryu",
"ttl": 3600
}
// новый ключ доступа, строка // новый ключ для обновления ключа доступа, строка // время жизни ключа доступа в секундах, целое число
Статус: 400 - не передан параметр refreshToken
Формат: text/plain
Содержит описание ошибки
Статус: 404 - параметр refreshToken не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Авторизован ли пользователь
GET /auth
Структура запроса:
GET /auth?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
authenticated: "true",
user: {
id: 318,
name: "Пользователь",
role: {
id: 10,
name: "Права"
},
organization: {
id: 99,
name: "dimas org",
peopleOrg: false,
mapExtent: {
id: 3,
name: "Republic of Tatarstan",
extent: {
minX: 46.092707888771805,
minY: 53.991908703423746,
maxX: 55.29971310170698,
maxY: 56.683787089077185,
projection: "EPSG:4326"
}
}
}
}
}
// true, если пользователь авторизован, иначе false, булевое поле // данные о пользователе, если он авторизован, объект // id пользователя, целое число // имя пользователя, строка // данные о группе прав, объект // id группы прав, целое число // название группы прав, строка // организация пользователя, объект // id организации // название организации // true, если организация для населения, булевое поле // данные о границе карты для данной группы прав, объект // id границы карты, целое число // название границы карты, строка // область видимости карты, объект // минимальный x, число с плавающей точкой // минимальный y, число с плавающей точкой // максимальный x, число с плавающей точкой // максимальный y, число с плавающей точкой // проекция
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход
GET /logout
Структура запроса:
GET /logout?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok"
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сервисы
WMS
GET /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=bw3ty3h46yth
service: сервис запроса WMS
request: название запроса GetMap
version: версия 1.1.1
layers: английское название слоя или слоев через запятую
styles: название стиля или стилей через запятую
format: формат, в котором вернется тайл
transparent: есть ли прозрачность
height: высота тайла
width: ширина тайла
srs: код проекции
bbox: область запроса
cql_filter: строка CQL фильтра
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - ни один слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /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=bw3ty3h46yth
request: название запроса GetLegendGraphic
layer: английское название слоя
style: название стиля слоя
format: формат, в котором вернется легенда
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS
GET /wfs
Получение 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=bw3ty3h46yth
service: сервис запроса WFS
request: название запроса GetFeature
version: версия 1.0.0
typeName: английское название слоя
outputFormat: формат возвращаемых данных
bbox: область запроса слоя
srs: код проекции, по умолчанию EPSG:4326
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра outputFormat
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
POST /service/wfs/{layerId}
WFS-post запросы к геосерверу
Структура запроса:
POST /service/wfs/{layerId}
service: сервис запроса WFS
Пример запроса:
Формат: 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
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
GET /service/styles/{layerId}/{styleName}.sld
Запрос sld-файла стиля
Структура запроса:
GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=bw3ty3h46yth
layerId: id слоя
styleName: название стиля
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/xml
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отчеты
Загрузка отчета
POST /jreports/load
Загрузка отчета
Структура запроса:
POST /jreports/load
Пример запроса:
Формат: Xml
<?xml .....
// xml отчета, созданного // через специалезированное програмное обеспечение
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.xml"]
}
// статус ответа // uuid загруженного файла
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного отчета
GET jreports/getLoadParams/{uuid}
Получение параметров только что загруженного отчета
Структура запроса:
GET jreports/getLoadParams/{uuid}
uuid: uuid файла отчета
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"params": ["in_date_from",
"in_date_till",
"in_number",
"in_integer",
"in_text",
"in_date"],
"targetName": "p18hptnqs71fjg18v51keth6g1vaj9.xml"
}
// статус // массив названий параметров // uuid файла
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка параметров только что загруженного отчета
POST /jreports/addParams/{xmlFileName}
Загрузка параметров только что загруженного отчета
Структура запроса:
POST /jreports/addParams/{xmlFileName}
xmlFileName: uuid загруженного отчета
Пример запроса:
Формат: json
{
"params": [{
"description": "gh",
"name": "in_date_from"
}],
"name": "Название"
}
// объект пораметров // описание параметра(русское название) // название в xml // Название отчета
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
}
// статус ответа
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение параметров отчета
POST /jreports/editParams/{reportId}
Изменение параметров отчета
Структура запроса:
POST /jreports/editParams/{reportId}
reportId: id отчета
Пример запроса:
Формат: json
{
"params": [{
"description": "gh",
"name": "in_date_from"
}],
"name": "Название"
}
// объект пораметров // описание параметра(русское название) // название в xml // Название отчета
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
}
// статус ответа
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группы слоев
Список групп
GET /groups
Структура запроса:
GET /groups?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [
{
"id": 32,
"name": "Группа 1",
"order": "1"
}
]
}
// массив объектов с информацией по группе // id группы, целое число // название группы, строка // порядковый номер группы в списке, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /groups/withLayers
Список групп, включая полную информацию по принадлежащим им слоям
Структура запроса:
GET /groups/withLayers?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [
{
"id": 32,
"name": "Группа1",
"order": "1",
"groupLayers": [
{
"layer": {
"id": 10,
"name": "Слой 1",
"enabled": false,
"info": {
"id": 10,
"typeName": "test:test_layer",
"style": "test_layer_a",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
"fields": [
{
"id": 4076,
"name": "adm_znach",
"nameRu": "Поле 1",
"order": 1,
"title": false ,
"view": true
}
],
},
"order": 1,
"groupId": 32
}
]
}
]
}
// массив групп // объект // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // информация по слою, объект // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /groups/shortdata/withLayers
Список групп, включая краткую информацию по принадлежащим им слоям
Структура запроса:
GET /groups/shortdata/withLayers?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [
{
"id": 32,
"name": "Группа1",
"order": "1",
"groupLayers": [
{
"layer": {
"id": 10,
"name": "Слой 1",
"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=bw3ty3h46yth
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [
{
"id": 32,
"name": "Группа 1",
"order": "1"
}
]
}
// массив объектов с информацией по группе // id группы, целое число // название группы, строка // порядковый номер группы в списке, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /groups/withLayers
Поиск списка групп, включая полную информацию по принадлежащим им слоям
Структура запроса:
GET /groups/withLayers?name=Пункт&token=bw3ty3h46yth
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа1",
"order": "1",
"groupLayers": [{
"layer": {
"id": 10,
"name": "Слой 1",
"enabled": false,
"info": {
"id": 10,
"typeName": "test:test_layer",
"style": "test_layer_a",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
"fields": [{
"id": 4076,
"name": "adm_znach",
"nameRu": "Поле 1",
"order": 1,
"title": false,
"view": true
}]
},
"order": 1,
"groupId": 32
}]
}]
}
// массив групп // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // информация по слою, объект // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по id
GET /groups/{groupId}
Структура запроса:
GET /groups/224?token=bw3ty3h46yth
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
group: {
id: 32,
name: "Базовые слои",
order: "1"
}
}
// группа, объект // id группы, целое число // название группы, строка // порядок группы в списке
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /groups/{groupId}/withLayers
Группа слоев, включая полную информацию по принадлежащим ей слоям
Структура запроса:
GET /groups/224/withLayers?token=bw3ty3h46yth
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Населенные пункты",
"order": "1",
"groupLayers": [
{
"layer": {
"id": 10,
"name": "Населенные пункты",
"enabled": false,
"info": {
"id": 10,
"typeName": "test:test_a",
"style": "style_test__a",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"fields": [
{
"id": 4076,
"name": "test",
"nameRu": "Поле1",
"order": 1,
"title": true,
"view": true
}
]
},
"order": 1,
"groupId": 32
}
]
}
}
// группа, объект // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // информация по слою, объект // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Слои
Список слоев
GET /layers
Список слоев с полной информацией
Структура запроса:
Получение списка слоев:
GET /layers?token=bw3ty3h46yth
token: ключ доступа
Получение списка слоев по английскому названию:
GET /layers?name=test:test_a&token=bw3ty3h46yth
name: английское название слоя или слово, встречающееся в названии списка слоев
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layers": [
{
"layer": {
"id": 136,
"name": "Тестовый слой",
"enabled": false,
"info": {
"id": 136,
"typeName": "test:test_a",
"style": "test_a_style",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"fields": [
{
"id": 4423,
"name": "vid",
"nameRu": "Поле 1",
"order": 1,
"title": false,
"view": true
}
]
},
"order": 2,
"groupId": 14
}
]
}
// массив слоев // объект слоя // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
POST /layers
Добавление слоя
Структура запроса:
POST /layers?token=bw3ty3h46yth
token: ключ доступа
Пример запроса:
Формат: json
{
"geometryType": "line",
"title": "название",
"name": "nazvanie",
"groupId": "112",
"attributes": [
{
"rusName": "атрибут 1",
"name": "atribut_1",
"type": "str",
"isTitle": true
}],
"styles": {
"isBase": false,
"isSimple": false,
"style": ""
}
}
// геометрия слоя // название слоя // английское название слоя, необязательный параметр // id группы слоев, в которую нужно добавить слой // список атрибутов слоя // объект атрибута // русское название // английское название, необязательный параметр // тип атрибута (str - строка, int - целое число, num - число с плавающей точкой) // является ли атрибут заголовком // объект стилей // является ли стиль базовым // является ли стиль простым // geocss стиля (если не базовый)
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layerId":4739
}
// id созданного слоя
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
PUT /layers/{layerId}
Изменение слоя
Структура запроса:
PUT /layers/?token=bw3ty3h46yth
layerId: id изменяемого слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"title": "awdawd",
"groupId": "112",
"attributes": [
{
"rusName": "атрибут 1",
"name": "atribut_1",
"type": "str",
"isTitle": true
}],
"styles": {
"isSimple": false,
"isBase": false,
"style": ""
}
}
// название слоя // id группы слоев, в которую нужно добавить слой // список атрибутов слоя // объект атрибута // русское название // английское название, необязательный параметр // тип атрибута (str - строка, int - целое число, num - число с плавающей точкой) // является ли атрибут заголовком // объект стилей // является ли стиль базовым // является ли стиль простым // geocss стиля (если не базовый)
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"edit":true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
DELETE /layers/{layerId}
Удаление слоя
Структура запроса:
DELETE /layers/14?token=bw3ty3h46yth
layerId: id удаляемого слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою
GET /layers/{layerId}
Структура запроса:
GET /layers/132?token=bw3ty3h46yth
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"layer": {
"id": 136,
"name": "Тестовый слой",
"enabled": false,
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id",
"hasType_photo": true,
"hasType_video": false,
"hasType_audio": true,
"hasType_file": true,
}
},
"fields": [
{
"id": 4423,
"name": "vid",
"nameRu": "Поле 1",
"order": 1,
"title": false,
"view": true
}
],
"access": {
"edit": true,
"write": true,
"read": true
},
"isKosmosnimok": false
},
"order": 2,
"groupId": 14
}
}
// объект // объект слоя // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // данные о наличии медиа информации, объект // есть ли медиа информация, булевое поле // поле для первичного ключа, строка // есть фотографии, булевое поле // есть видео, булевое поле // есть аудио, булевое поле // есть файлы, булевое поле // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // права текущего пользователя на слой // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на чтение // является ли космоснимком, булевое поле // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /layers/{layerId}/info
Информация по слою, исключая данные о группе слоя
Структура запроса:
GET /layers/132/info?token=bw3ty3h46yth
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"id": 136,
"name": "Тестовый слой",
"enabled": false,
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id",
"hasType_photo": true,
"hasType_video": false,
"hasType_audio": true,
"hasType_file": true,
}
},
"fields": [
{
"id": 4423,
"name": "vid",
"nameRu": "Поле1",
"order": 1,
"title": false,
"view": true
}
],
"access": {
"edit": true,
"write": true,
"read": true
},
"isKosmosnimok": false
}
}
// объект слоя // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // данные о наличии медиа информации, объект // есть ли медиа информация, булевое поле // поле для первичного ключа, строка // есть фотографии, булевое поле // есть видео, булевое поле // есть аудио, булевое поле // есть файлы, булевое поле // массив полей // объект поля // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // права текущего пользователя на слой // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на чтение // является ли космоснимком, булевое поле
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - у вас нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Граница слоя
GET /layers/{layerId}/bbox
Структура запроса:
GET /layers/199/bbox?token=bw3ty3h46yth
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, число с плавающей точкой // код проекции, строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Метаданные слоя
GET /layers/{layerId}/metadata
Структура запроса:
GET /layers/199/metadata?token=bw3ty3h46yth
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
metadata: {
id: 179,
owner: "dhedheh",
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
},
{
id: 2,
name: "Спутники",
order: 5,
inTable: true,
inTableName: "sputnik_id",
fieldType: {
id: 1,
name: "Список спутников",
control: "combobox",
geomType: null,
library: true,
libraryData: {
1: "IKONOS (1м)",
2: "QuickBird (0.6м)",
3: "EROS-A (2м)",
4: "EROS-B (0.7м)",
5: "WorldView-1 (0.5м)",
6: "GeoEye-1 (0.5м)"
}
},
necessary: false
}
]
},
additionalFieldValues: [
{
field: {
id: 4,
name: "test11rrty",
order: 6,
inTable: false,
inTableName: null,
fieldType: {
id: 3,
name: "целое число",
control: "input_integer",
geomType: null,
library: false,
libraryData: {}
},
necessary: false
},
value: "213434априцукнр"
}
],
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: типа, целое число // название типа, строка // управляющий элемент, который используется, строка // тип геометрии, строка // нужно ли искать значение поля в словаре, булевое поле // данные словаря, объект // является ли обязательным,булевое поле // значение поля // основная таблица с данными, объект // поле таблицы и его значение
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /layers/{layerId}/metadata/quicklook/{file}
Отображение превью-картинки у метаданных, если она присутствует
Структура запроса:
GET /layers/179/metadata/quicklook/kosmosnimok2012_02_08_05_06_06.jpg?token=bw3ty3h46yth
layerId: id слоя
file: название файла, приходит в качестве значения поля превью у метаданных
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 - картинка не найдена
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Все атрибуты слоя
GET /layers/{layerId}/attributes
Структура запроса:
GET /layers/199/attributes?token=bw3ty3h46yth
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)
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Объекты слоя
Добавление объекта слою
POST /layers/{layerId}/feature
Добавление объекта для слоя
Структура запроса:
POST /layers/{layerId}/feature?token=bw3ty3h46yth
layerId: id слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "awdaw",
"value": "dadsw",
"id": 4677
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[50.7952880859375,
56.029087419764366]]
},
"photos": [{
"uuid": "p18hpm6gku1t2sp0o84rst4lhrb.jpg",
"name": "create.jpg"
}],
"files": [{
"uuid": "p18hpm6r7ufn71q5o13l2ei5nnad.jps",
"name": "burnout paradise - 1 - esrb e pegi 7+.jps"
}]
}
// список атрибутов // название атрибута // значение // id // объект геометрии // тип геометрии // координаты // список фотографий // uuid загруженной фотографии // название фотографии // список файлов // uuid загруженного файла // название файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
PUT /layers/{layerId}/feature/{featureId}
Изменение объекта слоя
Структура запроса:
PUT /layers/{layerId}/feature/{featureId}?token=bw3ty3h46yth
layerId: id слоя
featureId: id объекта
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "awdaw",
"value": "dadswf",
"id": 4677
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[54.4921875,
56.77078840398196]]
},
"photos": [{
"uuid": "p18hpn28kh19can6vdt7109bd9g7.png",
"name": "create-layer.png"
}],
"files": [{
"uuid": "p18hpn20n717g61s6nlf71o5duv15.jps",
"name": "guitar hero 3 - 1 - esrb t pegi 12+.jps"
}],
"addedPhotos": [],
"addedFiles": []
}
// список атрибутов // название атрибута // значение // id // объект геометрии // тип геометрии // координаты // список фотографий // uuid загруженной фотографии // название фотографии // список файлов // uuid загруженного файла // название файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
DELETE /layers/{layerId}/feature/{featureId}
Удаление объекта
Структура запроса:
DELETE /layers/{layerId}/feature/{featureId}?token=bw3ty3h46yth
layerId: id удаляемого слоя
featureId: id объекта
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов в точке
POST /layers/feature
Структура запроса:
GET /layers/feature?token=bw3ty3h46yth
token: ключ доступа
Пример запроса:
{
"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
Структура запроса:
GET /layers/feature/bbox?token=bw3ty3h46yth
token: ключ доступа
Пример запроса:
{
"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 слоя // поле геометрии либо null
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной к объекту слоя
GET layers/eis/{layerId}/{objectId}
Структура запроса:
GET /layers/eis/198/141?token=bw3ty3h46yth
layerId: id слоя
objectId: значение первичного ключа объекта
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"files": [
{
"url": "/layers/eis/198/141/photo/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 3,
"name": "photo"
},
"asUrl": false
},
{
"url": "/layers/eis/198/141/file/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 4,
"name": "file"
},
"asUrl": false
}
]
}
// массив найденных прикрепленных файлов // прикрепленный файл, объект // путь к файлу // название файла // тип файла // id типа, // название типа, может быть photo, video, audio, file // представлен ли файл как ссылка
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа файла, прикрепленного к объекту слоя
GET layers/eis/{layerId}/{objectId}/photo/{photoId}
Отображение прикрепленной фотографии
Структура запроса:
GET /layers/eis/198/141/photo/247?token=bw3ty3h46yth
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
token: ключ доступа
GET layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}
Отображение прикрепленной фотографии с масштабированием по высоте
Структура запроса:
GET /layers/eis/198/141/photo/247/100?token=bw3ty3h46yth
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=bw3ty3h46yth
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=bw3ty3h46yth
layerId: id слоя
objectId: первичный ключ объекта
fileType: тип файла: photo, video, audio, file
fileId: первичный ключ файла
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от типа отдаваемого файла
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Геокодирование
Запрос геокодирования
POST /geocoding
Структура запроса:
POST /geocoding?token=bw3ty3h46yth
token: ключ доступа
Пример запроса
{
"layersId":[
"10",
"12",
"26"
],
"query":"Казань",
"point":{
"lon":50.69091796875,
"lat":55.33851784425634
},
bBox: {
_southWest:{
"lng": 46,
"lat": 55
},
_northEast: {
"lng": 48,
"lat": 57
}
}
}
// массив id слоев, где также надо осуществлять поиск // строка запроса // центр карты, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой // область запроса // левая нижняя точка // правая верхняя точка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layers": [
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"items": [
{
"pkid": 162815,
"label": "Республика Татарстан, Казань, Ледяная",
"zoom": 16,
"point": {
"lon": 49.28956419647526,
"lat": 55.75372719479096
}
}
]
}
]
}
// массив слоев, где найдены объекты // объект слоя // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // найденный объект // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET /geocoding
Структура запроса:
POST /geocoding?query=Казань&lon=55.45&lat=49.67&layersId=12,23,345,56&bbox=46,55,48,57&token=bw3ty3h46yth
query: строка запроса
lon: долгота центра карты, число с плавающей точкой
lat: широта центра карты, число с плавающей точкой
layersId: id слоев, где также надо осуществлять поиск, через запятую
bbox: область запроса
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layers": [
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"items": [
{
"pkid": 162815,
"label": "Республика Татарстан, Казань, Ледяная",
"zoom": 16,
"point": {
"lon": 49.28956419647526,
"lat": 55.75372719479096
}
}
]
}
]
}
// массив слоев, где найдены объекты // объект слоя // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // найденный объект // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка
Загрузка файлов
POST /fileload
Загрузка файлов
Структура запроса:
POST /fileload?photo=true
photo: необязательный параметр, если загружается фотография
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.jpg"]
}
// статус ответа // uuid загруженного файла
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки