Руководство разработчика REST

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=9c6333f651846cfc94feae0597b61224
        
      

request: название запроса GetLegendGraphic

layer: английское название слоя

style: название стиля слоя

format: формат, в котором вернется легенда

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: зависит от параметра format

Статус: 404 - слой не найден в системе

Формат: text/plain

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

Статус: 403 - нет доступа к слою

Формат: text/plain

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

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Получение списка слоев по английскому названию

                
GET /layers?name=testlayer&token=9c6333f651846cfc94feae0597b61224
                
            

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",
                "tileSize": 256,
                "geomField": "the_geom",
                "pkField": "gid"
            },
            "isEditable": true,
            "isStyleEditable": true,
            "owner": 6,
            "layerType": "vector",
            "geometryType": "point",
            "access": {
                "read": true,
                "edit": false,
                "write": true,
                "serviceObjects": true
            },
            "system": false,
            "systemCode": null,
            "fields": [{
                "id": 250,
                "name": "Field",
                "rusName": "Поле",
                "order": 1,
                "title": false,
                "view": true,
                "forUpsert": true,
                "forSearch": true,
                "type": "string",
                "htmlEscape": true,
                "popupView": false,
                "reference": false,
            }],
            "titleFields": {
                "format": "{0}",
                "fields": ["name"]
            },
            "subTitleFields": {
                "format": "{0}",
                "fields": ["category"]
            }
        },
        "groupId": 12
    }]
}
                    
                


        // массив слоев
        // порядковый номер в списке, целое число
        // объект слоя
        // id слоя, целое число
        // название слоя, строка
        // информация по слою, объект
        // id слоя, целое число
        // английское название слоя, строка
        // название стиля, строка
        // тип сервиса, WMS/WFS
        // является ли полигоном, логическое
        // url для запроса, строка
        // размер тайла, целое число
        // название поля с геометрией, строка

        // является ли редактируемым, логическое
        // можно ли редактировать стиль, логическое
        // id создателя слоя, целое число
        // тип слоя vector или raster, строка
        // тип геометрии, строка
        // права текущего пользователя на слой
        // на чтение
        // на изменение/удаление слоя
        // на добавление/изменение/удаление объектов слоя
        // на использование слоя в качестве оъектов обслуживания

        // является ли слой системным, логическое
        // код для системного слоя, строка
        // объект полей
        // id поля, целое число
        // английское название поля, строка
        // русское название поля , строка
        // порядок следования в списке, целое число
        // является ли заголовком, логическое
        // показывать ли поле, логическое
        // показывать ли поле при создании/редактировании объекта, логическое
        // будет ли использоваться поле для поиска по объектам слоя, логическое
        // тип, строка
        // экранировать ли html, логическое
        // показывать ли во всплывающем окошке, логическое
        // является ли ссылкой на таблицу, логическое


        // заголовок слоя
        // формат заголовка, строка
        // атрибуты, которые входят в заголовок, массив строк

        // подзаголовок слоя
        // формат заголовка, строка
        // атрибуты, которые входят в заголовок, массив строк

        // id группы
                

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Информация по слою, исключая данные о группе слоя

GET /layers/{layerId}/info

Структура запроса:

        
GET /layers/132/info?token=9c6333f651846cfc94feae0597b61224
        
      

layerId: id слоя

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

          
{
    "layer": {
        "id": 29,
        "name": "Сервисные объекты 1"
        "isEditable": true,
        "isStyleEditable": true,
        "owner": 6,
        "system": false,
        "systemCode": null,
        "info": {
            "id": 29,
            "typeName": "workspace:servisncye_obcaektcy_1_vw",
            "style": "servisncye_obcaektcy_1_1622626848248_style",
            "service": "WMS",
            "poly": false,
            "requestUrl": "/service/wms",
            "tileSize": 256,
            "geomField": "the_geom",
            "pkField": "fid",
            "eisInfo": {
                "hasEis": true,
                "pkField": "fid",
                "hasType_photo": true,
                "edit_photo": true,
                "hasType_file": true,
                "edit_file": true
            }
        },
        "fields": [{
            "id": 94,
            "name": "naimenovan",
            "rusName": "Наименование",
            "order": 1,
            "title": true,
            "view": true,
            "forUpsert": true,
            "forSearch": true,
            "type": "String",
            "htmlEscape": true,
            "popupView": false,
            "reference": false
        },...],
        "titleFields": {
            "format": "{0}",
            "fields": ["name"]
        },
        "subTitleFields": {
            "format": "{0}",
            "fields": ["category"]
        },
        "customFields": null,
        "geometryType": "multipoint",
        "dataStoreName": "activemap_store",
        "isKosmosnimok": false,
        "layerType": "vector",
        "access": {
            "read": true,
            "edit": true,
            "write": true,
            "serviceObjects": true
        },
        "cluster": null
    }
}

          
        

        // объект слоя
        // id слоя, целое число
        // русское название слоя, строка
        // является ли редактируемым, логическое
        // можно ли редактировать стиль, логическое
        // id создателя слоя, целое число
        // является ли слой системным, логическое
        // код для системного слоя, строка

        // информация по слою, объект
        // id слоя, целое число
        // английское название слоя, строка
        // название стиля, строка
        // тип сервиса, WMS/WFS
        // является ли полигоном, логическое
        // url для запроса, строка
        // размер тайла, целое число
        // название поля с геометрией, строка
        // данные о наличии медиа информации, объект
        // есть ли медиа информация, логическое
        // поле для первичного ключа, строка
        // есть ли фотографии, логическое
        // можно ли редактировать фотографии, логическое
        // есть ли файлы, логическое
        // можно ли редактировать файлы, логическое


        // массив полей
        // id поля, целое число
        // английское название поля, строка
        // русское название поля, строка
        // порядок следования в списке, целое число
        // является ли заголовком, логическое
        // показывать ли поле, логическое
        // показывать ли поле при создании/редактировании объекта, логическое
        // будет ли использоваться поле для поиска по объектам слоя, логическое
        // тип поля, строка
        // экранировать ли html, логическое
        // показывать ли во всплывающем окошке, логическое
        // является ли ссылкой на таблицу, логическое


        // заголовок слоя
        // формат заголовка, строка
        // атрибуты, которые входят в заголовок, массив строк

        // подзаголовок слоя
        // формат заголовка, строка
        // атрибуты, которые входят в заголовок, массив строк

        // дополнительные поля, строка
        // тип геометрии, строка
        // название хранилища данных, строка
        // является ли космоснимком, логическое
        // тип слоя, строка
        // права текущего пользователя на слой
        // на чтение
        // на изменение/удаление слоя
        // на добавление/изменение/удаление объектов слоя
        // на использование в качестве оъектов обслуживания

        // кластер, строка

        

Статус: 403 - у вас нет доступа к данному слою

Формат: text/plain

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

Статус: 404 - слой не найден в системе

Формат: text/plain

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

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Список групп, включая полную информацию по принадлежащим им слоям

GET /groups/withLayers

Структура запроса:

        
GET /groups/withLayers?token=9c6333f651846cfc94feae0597b61224
        
      

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

                    
{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания"
                "isEditable": false,
                "isStyleEditable": false,
                "owner": 6,
                "system": false,
                "systemCode": null,
                "view": true,
                "layerType": "vector",
                "geometryType": "point",
                "fields": [{
                    "id": 56,
                    "name": "issue_link",
                    "rusName": "ID",
                    "order": 1,
                    "title": false,
                    "view": true,
                    "forUpsert": true,
                    "forSearch": true,
                    "type": "int",
                    "htmlEscape": false,
                    "popupView": false,
                    "reference": false
                }, ...],
                "titleFields": {
                    "format": "{0}",
                    "fields": ["name"]
                },
                "subTitleFields": {
                    "format": "{0}",
                    "fields": ["category"]
                },
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ],
    }, ...],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}
                    
                

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Поиск списка групп, включая полную информацию по принадлежащим им слоям

        
GET /groups/withLayers?name=Группа?token=9c6333f651846cfc94feae0597b61224
        
      

name: слово/фраза, которая входит в название списка групп

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

          
{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания"
                "isEditable": false,
                "isStyleEditable": false,
                "owner": 6,
                "system": false,
                "systemCode": null,
                "view": true,
                "layerType": "vector",
                "geometryType": "point",
                "fields": [{
                    "id": 56,
                    "name": "issue_link",
                    "rusName": "ID",
                    "order": 1,
                    "title": false,
                    "view": true,
                    "forUpsert": true,
                    "forSearch": true,
                    "type": "int",
                    "htmlEscape": false,
                    "popupView": false,
                    "reference": false
                }, ...],
                "titleFields": {
                    "format": "{0}",
                    "fields": ["name"]
                },
                "subTitleFields": {
                    "format": "{0}",
                    "fields": ["category"]
                },
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ],
    }],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}
          
        

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Список групп, включая краткую информацию по принадлежащим им слоям

GET /groups/shortdata/withLayers

Структура запроса:

        
GET /groups/shortdata/withLayers?token=9c6333f651846cfc94feae0597b61224
        
      

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

          
{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания"
                "owner": 6,
                "system": false,
                "systemCode": null,
                "view": true,
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ],
    }, ...],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}
          
        

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Группа слоев, включая полную информацию по принадлежащим ей слоям

GET /groups/{groupId}/withLayers

Структура запроса:

        
GET /groups/32/withLayers?token=9c6333f651846cfc94feae0597b61224
        
      

groupId: id группы

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

          
{
    "group": {
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
              "id": 2,
              "name": "Новые задания"
              "isEditable": false,
              "isStyleEditable": false,
              "owner": 6,
              "system": false,
              "systemCode": null,
              "view": true,
              "layerType": "vector",
              "geometryType": "point",
              "fields": [{
                  "id": 56,
                  "name": "issue_link",
                  "rusName": "ID",
                  "order": 1,
                  "title": false,
                  "view": true,
                  "forUpsert": true,
                  "forSearch": true,
                  "type": "int",
                  "htmlEscape": false,
                  "popupView": false,
                  "reference": false
              }, ...],
              "titleFields": {
                  "format": "{0}",
                  "fields": ["name"]
              },
              "subTitleFields": {
                  "format": "{0}",
                  "fields": ["category"]
              },
              "info": {
                  "id": 2,
                  "typeName": "workspace:organization_layer_new_issues",
                  "style": "cku_departments_news_incident_style",
                  "service": "WMS",
                  "poly": false,
                  "requestUrl": "/service/wms",
                  "tileSize": 256,
                  "geomField": "the_geom",
                  "pkField": "gid"
              }
            },
            "order": 2,
            "groupId": 1
        }, ... ]
    }
}
          
        

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Отображение прикрепленной фотографии с масштабированием по высоте

GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}

Структура запроса:

        
GET /layers/eis/198/141/photo/247/100?token=9c6333f651846cfc94feae0597b61224
        
      

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=9c6333f651846cfc94feae0597b61224
        
      

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=9c6333f651846cfc94feae0597b61224
        
      

layerId: id слоя

objectId: первичный ключ объекта

fileType: тип файла: photo, video, audio, file

fileId: первичный ключ файла

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: зависит от типа отдаваемого файла

Статус: 404 - слой не найден в системе

Формат: text/plain

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

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Поиск по адресу (GET запрос)

GET /geocoding

Структура запроса:

        
        GET /geocoding?query=Казань&layersId=12,23,345,56&bbox=46,55,48,57&onlylayers=true
                                &token=9c6333f651846cfc94feae0597b61224
        
      

query: строка запроса

layersId: id слоев, где также надо осуществлять поиск, через запятую

bbox: область запроса

onlylayers: есть true, то осуществлять поиск только по слоям

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

          
[
    {
        "layer": "Улицы",
        "wmsName": "world:k2_ulitsy_l",
        "layerId": null,
        "items": [{
            "pkid": 162815,
            "label": "Казань, городской округ Казань, Татарстан",
            "zoom": 16,
            "point": {
                "lon": 49.28956419647526,
                "lat": 55.75372719479096
            },
            "address": {
                "city": "Казань",
                "county": "городской округ Казань",
                "state": "Татарстан",
                "country": "Россия",
                "country_code": "ru"
            },
            "sys_clr_id": null,
            "sys_org_id": null
        }]
    }, ...
]
          
        


    // массив слоев, где найдены объекты
    // русское название, строка
    // английское название, строка
    // null - слой, для поиска по умолчанию, иначе id из массива
    // массив найденных объектов
    // первичный ключ, строка
    // заголовок, строка
    // зум для отображения, целое число
    // точка, объект
    // долгота точки, число с плавающей точкой
    // широта точки, число с плавающей точкой

    // расшифровка адреса, объект






    // системное поле id cluster, если присутствует в атрибутах слоя
    // системное поле id организации, если присутствует в атрибутах слоя
        

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Поиск по координатам (POST запрос)

POST /geocoding

Структура запроса:

                
        POST /geocoding?token=9c6333f651846cfc94feae0597b61224
                
            

token: ключ доступа

Пример запроса:


{
    "layersId": ["10","12","26"],
    "point": {
        "lon": 50.69091796875,
        "lat": 55.33851784425634
    },
    "zoom": 14,
    "onlylayers": true
}
                    
                
                // массив id слоев, где также надо осуществлять поиск
                // точка на карты, объект
                // долгота точки, вещественное число
                // широта точки, вещественное число

                // уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса.
                // есть true, то осуществлять поиск только по слоям
                

Ответ:

Статус: 200 - успешное выполнение

Формат: json

                    
[
    {
        "layer": "Улицы",
        "wmsName": "world:k2_ulitsy_l",
        "layerId": null,
        "items": [{
            "pkid": 162815,
            "label": "Казань, городской округ Казань, Татарстан",
            "zoom": 16,
            "point": {
                "lon": 49.28956419647526,
                "lat": 55.75372719479096
            },
            "address": {
                "city": "Казань",
                "county": "городской округ Казань",
                "state": "Татарстан",
                "country": "Россия",
                "country_code": "ru"
            },
            "sys_clr_id": 2,
            "sys_org_id": null
        }]
    }, ...
]
                    
                


    // массив слоев, где найдены объекты
    // русское название, строка
    // английское название, строка
    // null - слой, для поиска по умолчанию, иначе id из массива
    // массив найденных объектов
    // первичный ключ, строка
    // заголовок, строка
    // зум для отображения, целое число
    // точка, объект
    // долгота точки, вещественное число
    // широта точки, вещественное число

    // расшифровка адреса, объект






    // системное поле id cluster, если присутствует в атрибутах слоя
    // системное поле id организации, если присутствует в атрибутах слоя

                

Статус: 500 - ошибка на сервере

Формат: text/plain

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

Поиск по координатам (GET запрос)

GET /geocoding

Структура запроса:

                
        GET /geocoding?lon=55.45&lat=49.67&layersId=12,23,345,56&zoom=14&onlylayers=true
                                    &token=9c6333f651846cfc94feae0597b61224
                
            

lon: долгота точки, вещественное число

lat: широта точки, вещественное число

layersId: id слоев, где также надо осуществлять поиск, через запятую

zoom: уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса

onlylayers: есть true, то осуществлять поиск только по слоям

token: ключ доступа

Ответ:

Статус: 200 - успешное выполнение

Формат: json

                    
[
    {
        "layer": "Улицы",
        "wmsName": "world:k2_ulitsy_l",
        "layerId": null,
        "items": [{
            "pkid": 162815,
            "label": "Казань, городской округ Казань, Татарстан",
            "zoom": 16,
            "point": {
                "lon": 49.28956419647526,
                "lat": 55.75372719479096
            },
            "address": {
                "city": "Казань",
                "county": "городской округ Казань",
                "state": "Татарстан",
                "country": "Россия",
                "country_code": "ru"
            },
            "sys_clr_id": null,
            "sys_org_id": 4
        }]
    }, ...
]
                    
                


    // массив слоев, где найдены объекты
    // русское название, строка
    // английское название, строка
    // null - слой, для поиска по умолчанию, иначе id из массива
    // массив найденных объектов
    // первичный ключ, строка
    // заголовок, строка
    // зум для отображения, целое число
    // точка, объект
    // долгота точки, число с плавающей точкой
    // широта точки, число с плавающей точкой

    // расшифровка адреса, объект






    // системное поле id cluster, если присутствует в атрибутах слоя
    // системное поле id организации, если присутствует в атрибутах слоя
                

Статус: 500 - ошибка на сервере

Формат: text/plain

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