ORBISMap REST API v2.0
ORBISMap REST API позволяет взаимодействовать с картами, слоями и объектами внутри ORBISMap. Вы можете использовать ORBISMap REST API для создания, изменения или удаления карт, слоёв и объектов или для построения выборок данных опубликованных карт для того, чтобы использовать их на Вашем web-сайте или в Вашем приложении.
Доступные функции
- Аутентификация
- Работа с картой
- Работа со слоями
- Работа со структурой слоя
- Работа с данными слоя
- Работа с объектами слоя
- Работа с файлами
- Запрос изображений
- Обработка ошибок
- Версии API
Описание параметров
Описание параметров функций API, участвующих в URL запроса
project_code
- код каталогаmap_code
- код карты (совпадает с названием схемы PgSQL)layer_code
- код слоя (совпадает с названием таблицы PgSQL)field_id
- ID колонки структуры слояobject_id
- ID объекта (совпадает со значением колонки orbis_id в таблице PgSQL)file_id
- ID файлаfile_uuid
- uuid файла
Сервер принимает GET
,POST
,PUT
,PATCH
,DELETE
запросы.
Обратиться можно только к карте, для которой включена публикация. С учётом прав доступа и активной сессии.
Все функции редактирования данных в обязательном порядке требуют предварительной авторизации.
Код каталога (project
) выводится в верхней панели в строке навигации первым элементом.
На рисунке ниже project
="oms_tests_docker"
Описание дополнительных необязательных параметров всех функций API
f
=json
,pdf
,fjson
: формат ответа (по умолчанию json);pdf
доступен исключительно для функции получения информации по объекту;fjson
позволяет форматировать выводимые данные согласно настройкам форматированияlng
=<код языка>
: указывает код языка, который будет выдаваться. Если не указан, выдается основной язык карты. Язык учитывается в названиях контейнеров и колонок, а также в значениях колонок. При этом коды колонок и служебные константы имени сущностей (name
) будут приходить без суффиксов кода языка и без суффиксов должны отсылаться на сервер.
Аутентификация
Аутентификация на проекте
POST http://<host>/api/2.0/<project_code>/login/
Здесь и далее считается, что за авторизованную сессию отвечает только параметр token. Он выдается как результат функции аутентификации и является идентификатором сессии. Сессия хранится на сервере в течении одного месяца после последнего запроса с ее участием, после чего автоматически уничтожается. Идентификатор сессии необходим при выполнении любых операций создания/изменения/удаления с использованием REST API. Для этого идентификатор сессии нужно передать в параметре token запроса. Результат выполнения любых операций REST API (как получения, так и изменения) зависит от настроек прав доступа пользователей в ORBISMap. Если token не передан в функцию, результат будет зависеть от настроек прав доступа публичного пользователя, иначе - от настроек прав доступа пользователя, определяемого переданным token.
Обязательные параметры запроса:
user
- логин пользователяpass
- пароль пользователя
Ответ
{
"token": "Токен авторизации"
}
Завершить авторизованную сессию
POST http://<host>/api/2.0/<project_code>/logout/
Обязательные параметры запроса:
token
- идентификатор сессии
Ответ
{
"token": ""
}
Работа с картой
Получить объект карты
GET http://<host>/api/2.0/<project_code>/<map_code>/
Здесь и далее считается, что в случае, если карта не опубликована и пользователь не авторизовался, система вернет ошибку доступа со статусом 403
.
Ответ
{
"id": 1,
"code": "map1",
"name": "Карта 1",
"css_style": "CartoCSS-стиль отображения карты - подложка для рисования слоев",
"group_layers": 0,
"has_publication": true
}
Создать карту
POST http://<host>/api/2.0/<project_code>/
Обязательные параметры запроса:
- параметры создаваемой карты передаются в формате json в теле запроса:
{
"code": "new_map",
"name": "Новая карта",
"css_style": "CartoCSS-стиль отображения карты - подложка для рисования слоев",
"publish": True
}
Где:
- `code` - код создаваемой карты
- `name` - имя карты
- `css_style` - CartoCSS-стиль отображения карты, *необязательный параметр* (в случае отсутствия значения будет использован стиль отображения по умолчанию)
- `publish` - опубликовать карту, *необязательный параметр*
Ответ
{
"id": 22,
"code": "new_map",
"name": "Новая карта",
"css_style": "CartoCSS-стиль отображения карты - подложка для рисования слоев",
"group_layers": 1
}
Получить дерево слоев
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/
Необязательные параметры запроса:
type
:full
- получить полное дерево слоёв с иерархией и порядком для отрисовкиpublish
- получить "дерево публикации" (по умолчанию)
returnBbox
:1
- включить в ответ габариты (Bounding Box) слоя0
(по умолчанию) - не включать в ответ габариты слоя
returnCss
:1
- включить в ответ CSS стили слоя0
(по умолчанию) - не включать в ответ CSS стили слоя
Ответ
[
{
"id": 1,
"type": "layer",
"code": "layer1",
"name": "Слой 1",
"sort": 1,
"bbox": {
"sw" : [Lat, Lon],
"ne" : [Lat, Lon]
},
"parent_id": 0,
"selected": false,
"map_layer_id": 1,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
"g_type": "Point|LineString|Polygon|Unknown",
"render_type": 0,
},
{
"id": 2,
"sort": 2,
"parent_id": 0,
"code": "layer2",
"name": "Слой 2",
"type": "layer",
"selected": true,
"render_type": 0,
"...": "..."
},
{
"id": 3,
"sort": 3,
"parent_id": 0,
"map_layer_id": 3,
"code": "layer3",
"name": "Слой 3",
"render_type": 0,
"...": "..."
},
{
"id": 4,
"sort": 4,
"parent_id": 0,
"code": "folder1",
"name": "Папка 1",
"type": "folder",
"render_type": 0,
"...": "..."
},
{
"id": 5,
"sort": 1,
"parent_id": 4,
"code": "layer4",
"name": "Слой 4 в Папке 1",
"type": "layer",
"render_type": 0,
"...": "..."
},
{
"id": 6,
"sort": 2,
"parent_id": 4,
"code": "vector_layer",
"name": "Векторный слой в Папке 1",
"type": "layer",
"render_type": 1,
"vectorSettings": {
"...": "...",
},
"...": "..."
},
{
"id": 7,
"sort": 3,
"parent_id": 4,
"code": "visualisation",
"name": "Визуализация слой в Папке 1",
"type": "visual",
"render_type": 0,
"visualSettings": {
"...": "...",
},
"...": "..."
}
]
Где
render_type
- определяет тип отрисовки слоя:0
- отрисовка растром на сервере;1
- отрисовка вектором на клиентеvectorSettings
- объект стилей отрисовки векторного слоя на клиентеvisualSettings
- объект настроек визуализации
vectorSettings
{
"vectorSettings": {
"stylesPolygon": {},
"stylesText": {},
"minZoom": 2,
"clusterSettings": {
"objectsCountDx": 0,
"icon": null,
"showObjectsCount": true,
"iconSizeMax": 25,
"radius": 40,
"iconSizeEnabled": false,
"iconDx": 0,
"iconEnabled": false,
"iconOffsetEnabled": false,
"iconDy": 0,
"iconSizeMin": 15,
"clusteringType": "client",
"objectsCountDy": 0,
"maxZoom": 12,
"maxZoomEnabled": false,
"splitByCategories": false
},
"popupColumn": 1065,
"maxZoom": 5,
"popupColumnCode": "orbis_id",
"showPopup": false,
"code": "entity",
"zoomsEnabled": false,
"clusteringEnabled": true,
"id": 21,
"stylesPoint": {
"icon": null,
"iconDx": 0,
"iconOffsetEnabled": true,
"iconDy": 0
},
"stylesLine": {}
}
}
visualSettings
{
"visualSettings": {
"algorithm": 1,
"showLegend": false,
"showText": false,
"pointSettings": {
"size": 10.0,
"allowOverlap": true,
"sizeEnabled": false
},
"borderSettings": {
"opacity": 100,
"pattern": 1,
"width": 1.0,
"color": "#FFFFFF"
},
"column": 1071,
"columnCode": "type",
"classesSettings": {
"opacity": 80,
"defaultClass": null,
"linePattern": 1,
"lineWidth": 1.0,
"classes": [{
"value": "Область",
"checked": true,
"color": "#80f320",
"count": 46,
"icon": "\/img\/db_lmv\/aa.png",
"useIcon": false
}, {
"value": "Республика",
"checked": true,
"color": "#d3b501",
"count": 22,
"icon": "\/img\/db_lmv\/p.png",
"useIcon": false
}, {
"value": "Край",
"checked": false,
"color": "#fe5c20",
"count": 9,
"icon": null,
"useIcon": false
}, {
"value": "Автономный округ",
"checked": false,
"color": "#eb156e",
"count": 4,
"icon": null,
"useIcon": false
}, {
"value": "Город федерального",
"checked": false,
"color": "#a402c5",
"count": 2,
"icon": null,
"useIcon": false
}, {
"value": "Автономная область",
"checked": false,
"color": "#4b2dfa",
"count": 1,
"icon": null,
"useIcon": false
}, {
"value": "Город федерального значения",
"checked": false,
"color": "#0c80f3",
"count": 1,
"icon": null,
"useIcon": false
}]
},
"classesCount": 9,
"code": "entity",
"legendName": "",
"showBorder": true,
"showValues": false,
"id": 16,
"textSettings": {
"offsetEnabled": false,
"haloWidth": 1.0,
"textOffset": 10.0,
"halo": true,
"haloOpacity": 100,
"column": "orbis_id",
"fontFamily": "Arial Bold",
"fontSize": 12.0,
"fontColor": "#000000",
"fontOpacity": 100,
"allowOverlap": false,
"haloColor": "#ffffff"
},
"type": 2,
"legendNames": [{
"ru": ""
}],
"showLegendName": false
}
Сохранить дерево публикации
POST http://<host>/api/2.0/<project_code>/<map_code>/publish/
Формат запроса:
[
{
"id": 1,
"sort": 1,
"parent_id": 0,
"selected": true,
"map_layer_id": 1,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
},
{
"id": 2,
"sort": 1,
"parent_id": 1,
"selected": true,
"map_layer_id": 2,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
},
{
"id": 3,
"sort": 2,
"parent_id": 1,
"selected": true,
"map_layer_id": 3,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
},
...
]
Где:
id
- уникальный идентификатор элемента дерева публикации. Используется в свойствеparent_id
дочерних элементов для создания древовидности;sort
- сортировка слоя в дереве публикации, необязательный параметр;parent_id
- идентификатор (id
) родительского элемента. 0 указывает на корень дерева;selected
- флаг, включен ли элемент по умолчанию в дереве публикации, необязательный параметр, по умолчаниюtrue
;map_layer_id
- идентификатор слоя OMS (векторный/растровый/виртуальный), на основе которого создается элемент дерева;icon
иicon_retina
- иконки для отображения элемента на карте.
Параметр id
должен быть целочисленным и уникальным в пределах одного запроса.
Ответ
Формат ответа совпадает с функцией Получить дерево слоев с параметрами по умолчанию.
Получение начальных настроек публичной карты.
GET http://<host>/api/2.0/<project_code>/
Формат запроса:
{
"map_code": "new_map",
}
Полученный файл конфигурации инициализирует первоначальную работу ORBISMap JS API
Работа со слоями
Получить слой карты
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/
Ответ
{
"id": 1,
"type": "layer",
"code": "layer1",
"name": "Слой 1",
"sort": 1,
"bbox": {
"sw" : ["Lat", "Lon"],
"ne" : ["Lat", "Lon"]
},
"parent_id": 0,
"selected": false,
"map_layer_id": 1,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
"g_type": "Point|LineString|Polygon|Unknown",
"css_style": "CartoCSS-стиль отображения слоя",
"render_type": 0
}
Получить легенду слоя карты
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/legend/
Ответ
{
"name": "Название легенды",
"showValues": true,
"classificators": [
{
"value": "orbis_id",
"fill":"#f82851",
"isIcon": false
}
],
"showLegend": true,
"column": "orbis_id",
"type": 5,
"minValue": 1,
"maxValue": 200
}
Создать слой
POST http://<host>/api/2.0/<project_code>/<map_code>/layers/
Обязательные параметры запроса:
- параметры создаваемого слоя в json-формате должны передаваться в теле запроса:
{
"code": "new_layer",
"localized_name": true,
"name": "Имя",
"parent_id": 2,
"sort": 3.5,
"css_style": "CartoCSS-стиль отображения слоя"
}
Где:
- `code` - код создаваемого слоя
- `localized_name` - флаг, локализовать ли название слоя, *необязательный параметр (по умолчанию false)*
- `name` - имя слоя для локализации с кодом = `значение параметра <lng>` (либо, если не параметр lng не задан, для локализации по умолчанию) *необязательный параметр*
- `parent_id` - идентификатор родительского контейнера (`карта/папка`), в котором будет находиться слой в дереве, *необязательный параметр (по умолчанию слой будет создаваться непостредственно в указанной карте)*
- `sort` - значение сортировки для создаваемого слоя (при изменении сортировки сервер выполнит пересортировку всех элементов в пределах указанного `parent_id`, в результате чего значение сортировки для каждого контейнера будет целочисленным), *необязательный параметр (по умолчанию слой будет добавлять последним для указанного `parent_id`)*
- `css_style` - CartoCSS-стиль отображения слоя, *необязательный параметр* (в случае отсутствия значения будет использован стиль отображения по умолчанию)
Ответ
{
"id": 9,
"code": "new_layer",
"name": "Новый слой",
"parent_id": 2,
"css_style": "CartoCSS-стиль отображения слоя",
"type": "layer",
"selected": "false",
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
"g_type": "Point|LineString|Polygon|Unknown",
"sort": 4,
"bbox": {
"sw" : [Lat, Lon],
"ne" : [Lat, Lon]
},
"render_type": 0
}
Изменить слой
PUT http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/
Необходимо передавать все значения.
Обязательные параметры запроса:
- измененные параметры слоя в json-формате передаются в теле запроса
{
"code": "new_layer_1",
"localized_name": true,
"name": "Новое Имя",
"parent_id": 3,
"sort": 1.5,
"css_style": "CartoCSS-стиль отображения слоя",
"...": "..."
}
Ответ
{
"id": 9,
"code": "new_layer_1",
"name": "Новое Имя",
"parent_id": 3,
"css_style": "CartoCSS-стиль отображения слоя",
"type": "layer",
"selected": "false",
"icon": "static/path/icon.png",
"g_type": "Point|LineString|Polygon|Unknown",
"sort": 2,
"bbox": {
"sw" : [Lat, Lon],
"ne" : [Lat, Lon]
}
}
Работа со структурой слоя
Получить структуру слоя
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/structure/
Ответ
[
{
"id":48,
"sort":1,
"parent_id":0,
"code":"orbis_id",
"name":"",
"required": true,
"type":"number",
"localized_name":false,
"localized_value":false
},
{
"id":49,
"sort":2,
"parent_id":0,
"code":"geom",
"name":"",
"required": false,
"type":"geom",
"localized_name":false,
"localized_value":false
},
{
"id":50,
"sort":3,
"parent_id":0,
"code":"titles",
"name":"Подписи",
"type":"title",
"localized_name":true,
"localized_value":false
},
{
"id":51,
"sort":1,
"parent_id":50,
"code":"label_en",
"name":"Подпись английская",
"required": true,
"type":"title|number|string|text|datetime|bool|file|geom",
"localized_name":true,
"localized_value":false
},
{
"id":52,
"sort":2,
"parent_id":50,
"code":"label_ru",
"name":"Подпись русская",
"required": false,
"type":"title|number|string|text|datetime|bool|file|geom",
"localized_name":true,
"localized_value":false
}
]
Изменить колонку
PUT http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/structure/<field_code>/
Необходимо передавать все значения.
Обязательные параметры запроса:
- параметры изменяемой колонки в json-формате передаются в теле запроса
{
"code": "New_column_1",
"name": "Новая колонка 1",
"localized_name": true,
"localized_value": false,
"required": false,
"type": "number",
"sort":4.5,
"parent_id": 50,
"...": "..."
}
Ответ
{
"id":53,
"sort":3,
"parent_id":50,
"code":"New_column_1",
"name":"Новая колонка 1",
"required": false,
"type":"number",
"localized_name":true,
"localized_value":false
}
Работа с данными слоя
Загрузка данных в слой
POST http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/import/
Загрузка данных поддерживает следующие форматы:
Вектор:
kml
shp
mid/mif
(Mapinfo)tab
(Mapinfo)geojson
xls/xlsx
dxf
csv
sxf
(КБ Панорама)
Растр:
tif
geotif
png
jpg/jpeg
Возможные способы загрузки:
- через POST - GeoJSON в теле POST-запроса
- через файл (excel, ....)
- через ссылку на файл
Обязательные параметры:
GeoJSON
в теле POST-запроса
либо
file
- Файл в параметре POST-запроса
Дополнительные необязательные параметры:
srs
- id проекции (в формате epsg/wkt/proj4) загружаемого файла (если нужна); по умолчанию: "4326"(EPSG) (формат задаваемой проекции определяется сервером автоматически)action
- как производить импорт: 1 - заменить; 2 - объединить (по умолчанию: 2); Доступно только для векторных слоёвraster_bbox
- bbox для растровых данных в формате:BOX(x_min y_min,x_max y_max)
; значения по умолчанию не имеет, т.е. если растр не имеет данных о геопривязке и не будет задан этот параметр, это приведет к ошибке импорта.
Ответ
{
"id": 8,
"code": "layer1",
"name": "Слой 1",
"parent_id": 2,
"css_style": "CartoCSS-стиль отображения слоя",
"type": "layer",
"selected": false,
"icon": "static/path/icon.png",
"icon_retina": "static/path/icon.png",
"g_type": "Point|LineString|Polygon|Unknown",
"sort": 6,
"bbox": {
"sw" : [Lat, Lon],
"ne" : [Lat, Lon]
}
}
Выгрузка данных слоя
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/export/
Выгрузка данных поддерживает следующие форматы:
Вектор:
kml
,kmz
: (format=kml|kmz)shp
: (format=shp)mid/mif
,tab
(MapInfo): (format=mif|tab)geojson
: (format=geojson)xlsx
(Excel): (format=xls)csv
: (format=csv)
Растр:
geotif
: (format=geotif)
Обязательные GET-параметры:
format
: shp|mif|tab|geojson|kml|kmz|xls|geotif|csv
Необязательные дополнительные GET-параметры:
langs
: ru,en... (коды языков через ","), если параметр пустой, будут выгружены все языкиzip
- принудительная упаковка в *.zip одиночных файлов (влияет только на экспорт в форматы, состоящие из одного файла)feature_ids
- список идентификаторов объектов слоя (через запятую), которые необходимо экспортировать (иначе экспортируется весь слой)
Дополнительные GET-параметры для экспорта CSV
encoding
- кодировка, в которую будут преобразованы текстовые данные экспортируемого слоя (utf-8, cp1251, ...). По умолчанию - utf-8.dialect
- диалект (формат разделителя, экранирования строк и переносов) CSV для экспорта. По умолчанию - ; (точка с запятой).- поддерживаемые диалекты:
comma
- разделитель запятая
- поддерживаемые диалекты:
Ответ
zip-архив (для типов shp,mif) или файл (для типов geojson, kml, kmz, xls, csv) с результатом. Если указан параметр zip
, то файлы любого типа (кроме kmz
) будут сжаты в *.zip
.
Экспорт в kmz всегда возвращает файл *.kmz
, вне зависимости от наличия параметра сжатия.
Работа с объектами слоя
Получить список объектов слоя
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/
Необязательные параметры запроса:
fields
- список кодов колонок через запятую, значения которых также попадут в результат; если необходимо получить все колонки, то необходимо послатьfields
=*
fcode
- код колонки для фильтрацииfval
- значение фильтруемой колонкиoffset
- стартовое смещение выдачи объектовlimit
- ограничение на количество выбранных объектовsort
- набор колонок, по которым будет выполнена сортировка списка. Значение представляется в форматеname,a|capital|id,d
, где a=ASC (по возрастанию - значение по умолчанию), d=DESC (по убыванию)fbbox
- фильтр по BBOX в форматеSW_LAT,SW_LON,NE_LAT,NE_LON
returnBbox
=1
,0
включать ли в ответ Bounding Box объектаbboxSR
=4326
,3857
- spatial reference для Bounding Box объекта в формате EPSG (по умолчанию4326
). Учитывается и при фильтрации по BBOX.returnGeom
=1
,0
включать ли в ответ геометрию объекта (если да, геометрия будет возвращена в ответе в формате GeoJSON)geomSR
=4326
,3857
- spatial reference для геометрии объекта в формате EPSG (по умолчанию4326
)geomZoom
- параметр, учитываемый при запросе геометрии объекта: в случае указания текущего зума геометрия будет автоматически упрощена под указанный зум; если параметр не задавать, геометрия будет в исходном виде (без упрощения)returnCentroid
- если задан параметрreturnGeom
, то вместо геометрии объектов будут возвращаться координаты точек их центроидов.Работает для всех типов геометрии.
Ответ
[
{
"id": "2",
"fields": {
"field_1": "Значение колонки 1 объекта 2",
"field_2": 456.123
},
"geom": {
"type": "Polygon",
"coordinates": [
[
[ 39.674470691019003, 45.201854294024443 ],
[ 39.672229085150633, 45.164807545385699 ],
[ 39.728412719962421, 45.151394461232584 ],
[ 39.674470691019003, 45.201854294024443 ]
]
]
},
"bbox": {
"sw" : [39.67222, 45.20185],
"ne" : [39.72841, 45.15139]
}
}
]
Получить информацию по объекту слоя
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/<object_id>/
Необязательные параметры запроса:
returnBbox
=1
,0
включать ли в ответ Bounding Box объектаbboxSR
=4326
,3857
- spatial reference для Bounding Box объекта в формате EPSG (по умолчанию 4326)returnGeom
=1
,0
включать ли в ответ геометрию объекта (если да, геометрия будет возвращена в ответе в формате GeoJSON)geomSR
=4326
,3857
- spatial reference для геометрии объекта в формате EPSG (по умолчанию 4326)geomZoom
- параметр, учитываемый при запросе полной геометрии объекта: в случае указания текущего зума геометрия будет автоматически упрощена под указанный зум; если параметр не задавать, геометрия будет в исходном виде (без упрощения)
Ответ
{
"id": 1,
"fields": {
"field_1": "Значение колонки 1",
"field_2": "Значение колонки 2",
"field_3": 3
},
"geom": {
"type": "Polygon",
"coordinates": [
[
[ 39.674470691019003, 45.201854294024443 ],
[ 39.672229085150633, 45.164807545385699 ],
[ 39.728412719962421, 45.151394461232584 ],
[ 39.674470691019003, 45.201854294024443 ]
]
]
},
"bbox": {
"sw" : [39.67222, 45.20185],
"ne" : [39.72841, 45.15139]
}
}
Получить информацию по геометрии объекта слоя
GET http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/<object_id>/geom/
Обязательные параметры запроса:
token
- идентификатор сессии
Ответ
{
"type": "Point",
"coordinates": [ 3673543.19617802882567, 3895303.963393894489855 ]
}
Изменить информацию по геометрии объекта слоя
PUT/PATCH http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/<object_id>/geom/
Если используется PUT, то необходимо передавать все значения. Если используется PATCH, то можно передавать только те значения, которые требуют изменения.
Обязательные параметры запроса:
token
- идентификатор сессии- параметры геометрии в Geojson-формате передаются в теле запроса
Необязательные параметры запроса:
geomSR
=4326
,3857
- spatial reference для геометрии объекта в формате EPSG (по умолчанию4326
)
{
"geom": {
"coordinates": [61.33891, 35.83611],
"type": "Point"
}
}
Ответ
{
"geom": {
"coordinates": [6828216.22701, 4278093.73065],
"type": "Point"
}
}
Работа с файлами
Добавить файл к объекту
POST http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/<object_id>/files/
Обязательные параметры запроса
field
- Код колонки, в которую загружать файлfile
- Файл в параметре POST-запроса
Ответ
{
"name": "имя загруженного файла.m4a",
"path": "//<host>/static/content_files/oms_tests_docker/0bb97e774aee56cf3e7b0b0717ab62ce.m4a",
"mime": "audio/x-m4a",
"id": 3,
"code": "",
"uuid": "754279f7-fdf1-4f75-a5d8-1bbd18c3dd5b"
}
Удалить файл объекта
DELETE http://<host>/api/2.0/<project_code>/<map_code>/layers/<layer_code>/objects/<object_id>/files/<file_id>/
Обязательные параметры запроса
field
- Код колоки, в которую загружать файл
Ответ
null
Запрос изображений
Позволяет на лету изменить размер любого изображения, привязанного к любому объекту в системе. Например создать уменьшенную копию изображения.
GET http://<host>/api/2.0/<project_code>/image/<file_uuid>/
Необязательные параметры запроса:
w
- желаемая ширина итогового изображения; еслиh
не будет указан, изображение изменится с сохранением пропорцийh
- желаемая высота итогового изображения; еслиw
не будет указан, изображение изменится с сохранением пропорцийfit
- параметр преобразования изображения (работает аналогично CSS3 object-fit). Применяется, если указаны оба параметра:w
иh
. Допустимые значения:none
,fill
,contain
,cover
,scale-down
. По умолчаниюfill
f
- желаемый формат изображения. Допустимые значения:png
,jpg
,jpeg
. По умолчаниюpng
Обработка ошибок
HTTP-статусы выполнения запросов:
- HTTP 200 - запрос выполнен успешно; в ответе json-объект с результатом операции
- HTTP 401 – ошибка аутентификации: выполнение данного запроса требует аутентификации
- HTTP 403 – ошибка авторизации: выполнение данной операции для данного пользователя запрещено правами доступа
- HTTP 404 - не найдена сущность, соответствующая запросу
- HTTP 500 - в результате выполнения запроса произошла ошибка; в ответе json-объект описания ошибки:
{
"error": "error|warning|notice",
"code": "код_ошибки",
"message": "Описание ошибки выполнения запроса",
"data": {}
}
Где:
- data
- всегда json-объект, который может содержать дополнительную информацию по ошибке. Например, список обязательных параметров запроса или колонок, установление значения для которых вызывало ошибку при редактировании объекта.