Документация-вспомогательные

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

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

Содержит описание ошибки

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

Содержит описание ошибки

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

Содержит описание ошибки

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

Содержит описание ошибки

Нет комментариев