Archives by date

You are browsing the site archives by date.

mapSerfer — API — GeoPortal

GeoPortal является основным объектом API для взаимодействия с системой.

Пример работы с GeoPortal:


GeoPortal.requestGroups (
    true,
    function(groups){
        if(groups && groups.length){
            var group = groups [0];
            var layers = group.groupLayers;
            if(layers && layers.length)
                map.addLayer(layers[0]);
        }
    },
    function(status,error){
       console.log(error);
    });


События

Событие Описание Пример использования
ready Событие происходит, когда API готово к использованию.

GeoPortal.on(“ready”,
                        function(){

                        },this);

                                

Свойства

Свойство Описание
baseLayers Объект, состоящий из двух полей (schemas , spaces), каждое из которых является массивом. Элементы массива — экземпляры класса GeoPortal.BaseLayer.
1)schemas (GeoPortal.baseLayers.schemas) — хранит набор базовых слоев, типа «карта».
2) spaces (GeoPortal.baseLayers.spaces) — хранит набор базовых слоев, типа «космоснимок».
mapExtent Стандартные границы карты. Объект класса GeoPortal.MapExtent.
basePath url геопортала.

Методы

Метод Описание Пример использования
requestLayers( callback, callErrorBack) Список всех доступных слоев.
Входящие параметры:
callback(layers) – функция выполняется при получении слоев с сервера.
Принимает на вход один параметр — массив экземпляров класса GeoPortal.Layer.
callErrorBack(status,error) – функция выполняется при возникновении ошибки во время
запроса. На вход принимает два параметра: статус и описание ошибки.

var map = new GeoPortal.Map();
GeoPortal.requestLayers (
        function(layers){
        var layer = layers[0];
            map.addLayer(layer);
        },
        function(status,error){
            console.log(error);
        });

                                

Методы

Метод Описание Пример использования
findLayerById (id, callback,callErrorBack) Поиск слоя по id.
входящие параметры:
id – id слоя
callback(layer) – функция выполняется, если слой с данным id найден на сервере.
Принимает на вход один параметр: элемент — экземпляр класса GeoPortal.Layer.
callErrorBack(status,error) – функция выполняется при возникновении ошибки во время
запроса. На вход принимает два параметра: статус и описание ошибки.

var map = new GeoPortal.Map();
GeoPortal.findLayerById (
        204,
        function(layer){
            map.addLayer(layer);
        },
        function(status,error){
            console.log(error);
        });

                                
findLayerByName( name, callback, callErrorBack) поиск слоев по typeName.
входящие параметры:
name – typeName слоя
callback(layers) – функция выполняется, если найден хотя бы один слой, для которого параметр
name является подстрокой у typeName. Принимает на вход один параметр: элемент — массив
экземпляров класса GeoPortal.Layer, у которых typeName содержит в себе подстроку name.
callErrorBack(status,error) – функция выполняется при возникновении ошибки во время запроса. На
вход принимает два параметра: статус и описание ошибки.

GeoPortal. findLayerByName (
        “layer_name”,
        function(layers){
        var layer = layers[0];
            console.log(layer.name());
        },
        function(status,error){
            console.log(error);
        });

                                

Методы

Метод Описание Пример использования
requestGroups( withLayers, callback, callErrorBack) Cписок доступных групп слоев.
Входящие параметры:
withLayers – если параметр true, то группы вернутся со слоями
callback(groups) – функция выполняется при получении групп слоев с сервера.
Принимает на вход один параметр — массив экземпляров класса GeoPortal.LayerGroup.
callErrorBack(status,error) – функция, которая будет выполняться при ошибке во время запроса,
на вход должна принимать статус и описание ошибки.

var map = new GeoPortal.Map();
GeoPortal.requestGroups (
        true,
        function(groups){
            var group = groups [0];
            var layers = group.groupLayers;
            if(layers && layers.length)
                map.addLayer(layers[0]);
        },
        function(status,error){
            console.log(error);
        });

                               

Методы

Метод Описание Пример использования
findGroupById (id, withLayers, callback, callErrorBack) Поиск группы слоев по id.
Входящие параметры:
id – id группы слоев
withLayers – если параметр true, то группы вернутся со слоями
callback(groups) — функция выполняется при получении группы слоев с сервера.
Принимает на вход один параметр: элемент — экземпляр класса GeoPortal.LayerGroup.
callErrorBack(status,error) – функция будет выполняться при возникновении ошибки во время запроса.
На вход принимает два параметра: статус и описание ошибки.


GeoPortal. findGroupById (
        32,
        function(group){
            console.log(group.id());
        },
        function(status,error){
            console.log(error);
        },
        true);

                               
findGroupByName (name, withLayers, callback, callErrorBack) Поиск групп слоев по имени.
Входящие параметры:
name – название группы слоев
callback(groups) – функция выполняется, если найден хотя бы один слой, для которого параметр
name является подстрокой у названия. Принимает на вход один параметр: элемент — массив экземпляров
класса GeoPortal.LayerGroup, у которых название содержит в себе подстроку name.
callErrorBack(status,error) – функция выполняется при возникновении ошибки во время запроса.
На вход принимает два параметра: статус и описание ошибки.

GeoPortal.findGroupByName (
        “group_name”,
        function(group){
            console.log(group.name());
        },
        function(status,error){
            alert(error);
        },
        true);

                                

Методы

Метод Описание Пример использования
authenticate(login,password,callBack,callErrorBack) Авторизация
Входящие параметры:
login – логин пользователя
password – пароль пользователя
callback(data) — функция выполняется при успешной авторизации.
callErrorBack(status,error) – функция будет выполняться при возникновении ошибки во время запроса.
На вход принимает два параметра: статус и описание ошибки.


GeoPortal.authenticate("demo","demo",
    function(data){
        GeoPortal.requestGroups(true,
            function(groups){
                console.log(groups);
            },
            function(status,error){
                console.log("Error to request groups list. Status = " +
                            status + ". Error text: " + error);
            }
        );
    },
    function(status,error){
        console.log("Error to request authentication. Status = " +
                    status + ". Error text: " + error);
    }
);

currentUser(callBack,callErrorBack) Текущий пользователь
Входящие параметры:
callback(user) — функция выполняется, если получены данные о текущем пользователе.
В качестве параметра получает, данные о пользователе, если пользователь не авторизован, то приходит null.
callErrorBack(status,error) – функция будет выполняться при возникновении ошибки во время запроса.
На вход принимает два параметра: статус и описание ошибки.

GeoPortal.currentUser(
    function(user){
        if (user != null){
            console.log(user.name);
        }
    },
    function(status,error){
        console.log("Error to request authentication. Status = " +
                    status + ". Error text: " + error);
    }
);

logout() Выход из системы

GeoPortal.on("logout",function(){
    console.log("User is logout");
},this);
GeoPortal.logout();

События

Событие Описание
logout Происходит, когда авторизированный пользователь выходит из системы

Пространство имен для служебных функций


var icon = new GeoPortal.Icon();
var marker = new GeoPortal.Marker(latLng, {icon: icon});
/*создаем маркер*/

/*описываем реакцию на клик по маркеру*/
marker.on(
   "click",
   GeoPortal.Util.bind(function() {
      console.log(this.options.icon.iconUrl);
      /*вывести в консоль url иконки*/
   },
   marker)
   /*функция выполнится в контексте маркера, то есть выведется путь до его иконки*/
);

Методы

Метод Возвращает Описание
bind (<Function> method, <Object> context)
<Function> method — функция, которой необходимо привязать контекст
<Object> context — контекст
Function Связывает функцию method с объектом object. Это значит, что каждый раз, когда она будет вызвана, this будет указывать на object.

mapSurfer -rest — geocoding

POST /geocoding

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


POST /geocoding?token=bw3ty3h46yth

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

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


{
    "layersId":[
        "10",
        "12",
        "26"
    ],
    "query":"Казань",
    "point":{
        "lon":50.69091796875,
        "lat":55.33851784425634
    }
}



// массив id слоев, где также надо осуществлять поиск




// строка запроса
// центр карты, объект
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой

Ответ:

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

Формат: json


{
    "layers": [
        {
            "layer": "Улицы",
            "wmsName": "world:k2_ulitsy_l",
            "layerId": null,
            "items": [
                {
                    "pkid": 162815,
                    "label": "Республика Татарстан, Казань, Ледяная",
                    "zoom": 16,
                    "point": {
                        "lon": 49.28956419647526,
                        "lat": 55.75372719479096
                    }
                }
            ]
        }
    ]
}



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

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

Формат: text/plain

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

GET /geocoding

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


POST /geocoding?query=Казань&lon=55.45&lat=49.67&layersId=12,23,345,56&token=bw3ty3h46yth

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

lon: долгота центра карты, число с плавающей точкой

lat: широта центра карты, число с плавающей точкой

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

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

Ответ:

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

Формат: json


{
    "layers": [
        {
            "layer": "Улицы",
            "wmsName": "world:k2_ulitsy_l",
            "layerId": null,
            "items": [
                {
                    "pkid": 162815,
                    "label": "Республика Татарстан, Казань, Ледяная",
                    "zoom": 16,
                    "point": {
                        "lon": 49.28956419647526,
                        "lat": 55.75372719479096
                    }
                }
            ]
        }
    ]
}



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

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

Формат: text/plain

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

mapSurfer -rest — objects

POST /layers/feature

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


GET /layers/feature?token=bw3ty3h46yth

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

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


{
    "layersId": ["198","245","345"],
    "size": {
        "x": 1920,
        "y": 778
    },
    "extent": {
        "_southWest": {
            "lat": 55.488191455802244,
            "lng": 47.94158935546874
        },
        "_northEast": {
            "lat": 56.08889483995169,
            "lng": 50.57830810546875
        }
    },
    "point": {
        "x": 859,
        "y": 364
    }
}



// массив id слоев, где будет осуществляться поиск
// размер области видимости в пикселях, объект
// пикселей по оси x, целое число
// пикселей по оси y, целое число

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

// координаты верхней правой точки на карте в градусах, объект
// широта верхней правой точки, число с плавающей точкой
// долгота верхней правой точки, число с плавающей точкой


// точка, в которой происходит поиск. в пикселях, объект
// координата х, целое число
// координата y, целое число

Ответ:

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

Формат: json


{
    "data": {
        "kziokzn:vamin_kioski_p_vw": {
            "features": [
                {
                    "fid": "141",
                    "zayavit": "ОАО \"Вамин Татарстан\"",
                    "syyinfo":"Есть",
                    "srnaimenovanie":"Ново-савиновский",
                    "geom":"",
                    "nomerdoma":"47","
                    sunaimenovanie":"10летОктября[П, Ст.Победилово]",
                    "syinfo":"Есть",
                    "svinfo":"Существующий"
                }
            ],
            "layerId":198,
            "geomFieldName":null
        }
    }
}



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









// id слоя
// поле геометрии либо null

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

Формат: text/plain

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

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

Формат: text/plain

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

POST /layers/feature/bbox

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


GET /layers/feature/bbox?token=bw3ty3h46yth

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

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


{
    "layersId": ["198","234","23"],
    "srs": "EPSG:4326",
    "extent": {
        "_southWest": {
            "lng": 49.04296875,
            "lat": 55.754940702479146
        },
        "_northEast": {
            "lng": 49.299774169921875,
            "lat": 55.90457539720638
        }
    }
}



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

// координаты верхней правой точки области, объект
// широта верхней правой точки, число с плавающей точкой
// долгота верхней правой точки, число с плавающей точкой

Ответ:

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

Формат: json


{
    "data": {
        "kziokzn:vamin_kioski_p_vw": {
            "features": [
                {
                    "fid": "141",
                    "zayavit": "ОАО \"Вамин Татарстан\"",
                    "syyinfo":"Есть",
                    "srnaimenovanie":"Ново-савиновский",
                    "geom":"",
                    "nomerdoma":"47","
                    sunaimenovanie":"10летОктября[П, Ст.Победилово]",
                    "syinfo":"Есть",
                    "svinfo":"Существующий"
                }
            ],
            "layerId":198,
            "geomFieldName":null
        }
    }
}



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









// id слоя
// поле геометрии либо null

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

Формат: text/plain

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

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

Формат: text/plain

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

GET layers/eis/{layerId}/{objectId}

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


GET /layers/eis/198/141?token=bw3ty3h46yth

layerId: id слоя

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

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

Ответ:

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

Формат: json


{
    "files": [
        {
            "url": "/layers/eis/198/141/photo/247",
            "fileName": "Чистопольская,47.JPG",
            "type": {
                "id": 3,
                "name": "photo"
            },
            "asUrl": false
        },
        {
            "url": "/layers/eis/198/141/file/247",
            "fileName": "Чистопольская,47.JPG",
            "type": {
                "id": 4,
                "name": "file"
            },
            "asUrl": false
        }
    ]
}



// массив найденных прикрепленных файлов
// прикрепленный файл, объект
// путь к файлу
// название файла
// тип файла
// id типа,
// название типа, может быть photo, video, audio, file

// представлен ли файл как ссылка

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Отображение прикрепленной фотографии

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


GET /layers/eis/198/141/photo/247?token=bw3ty3h46yth

layerId: id слоя

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

photoId: первичный ключ фотографии

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

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

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

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


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

layerId: id слоя

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

photoId: первичный ключ фотографии

height: высота для масштабирования

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

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

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

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


GET /layers/eis/198/141/photo/247/100/150?token=bw3ty3h46yth

layerId: id слоя

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

photoId: первичный ключ фотографии

height: высота для масштабирования

width: ширина для масштабирования

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

Ответ:

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

Формат: image/jpeg и т.д.

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /layers/eis/{layerId}/{objectId}/{fileType}/{fileId}

Отображение прикрепленного файла

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


GET /layers/eis/198/141/file/247?token=bw3ty3h46yth

layerId: id слоя

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

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

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

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

Ответ:

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

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

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

Формат: text/plain

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

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

Формат: text/plain

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

mapSurfer — rest — layers

GET /layers

Список слоев с полной информацией

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

Получение списка слоев:


GET /layers?token=bw3ty3h46yth

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

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


GET /layers?name=test:test_a&token=bw3ty3h46yth

name: английское название слоя или слово, встречающееся в названии списка слоев

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

Ответ:

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

Формат: json


{
    "layers": [
        {
        "layer": {
            "id": 136,
            "name": "Тестовый слой",
            "enabled": false,
            "info": {
                "id": 136,
                "typeName": "test:test_a",
                "style": "test_a_style",
                "service": "WMS",
                "poly": true,
                "requestUrl": "/service/wms",
                "eisInfo": {
                    "hasEis": false,
                    "pkField": ""
                }
            },
            "fields": [
                {
                    "id": 4423,
                    "name": "vid",
                    "nameRu": "Поле 1",
                    "order": 1,
                    "title": false
                }
            ],
            "isKosmosnimok": false
        },
        "order": 2,
        "groupId": 14
        }
    ]
}



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


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


// является ли космоснимком, булевое поле

// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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

GET /layers/{layerId}

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


GET /layers/132?token=bw3ty3h46yth

layerId: id слоя

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

Ответ:

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

Формат: json


{
    "layer": {
        "layer": {
            "id": 136,
            "name": "Тестовый слой",
            "enabled": false,
            "info": {
                "id": 136,
                "typeName": "test:test_p",
                "style": "test_p_style",
                "service": "WMS",
                "poly": false,
                "requestUrl": "/service/wms",
                "eisInfo": {
                    "hasEis": false,
                    "pkField": ""
                }
            },
            "fields": [
                {
                    "id": 4423,
                    "name": "vid",
                    "nameRu": "Поле 1",
                    "order": 1,
                    "title": false
                }
            ],
            "isKosmosnimok": false
        },
        "order": 2,
        "groupId": 14
    }
}



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


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


// является ли космоснимком, булевое поле

// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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

GET /layers/{layerId}/info

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

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


GET /layers/132/info?token=bw3ty3h46yth

layerId: id слоя

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

Ответ:

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

Формат: json


{
    "layer": {
        "id": 136,
        "name": "Тестовый слой",
        "enabled": false,
        "info": {
            "id": 136,
            "typeName": "test:test_p",
            "style": "test_p_style",
            "service": "WMS",
            "poly": false,
            "requestUrl": "/service/wms",
            "eisInfo": {
                "hasEis": false,
                "pkField": ""
            }
        },
        "fields": [
            {
                "id": 4423,
                "name": "vid",
                "nameRu": "Поле1",
                "order": 1,
                "title": false
            }
        ],
        "isKosmosnimok": false
    }
}



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


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


// является ли космоснимком, булевое поле

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /layers/{layerId}/bbox

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


GET /layers/199/bbox?token=bw3ty3h46yth

layerId: id слоя

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

Ответ:

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

Формат: json


{
    boundingBox: {
        minx: "49.053",
        maxx: "49.24",
        miny: "55.739",
        maxy: "55.863",
        crs: "EPSG:4326"
    }
}



// объект
// минимальный x, число с плавающей точкой
// минимальный y, число с плавающей точкой
// максимальный x, число с плавающей точкой
// максимальный y, число с плавающей точкой
// код проекции, строка

Статус: 404 — слой не найден

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /layers/{layerId}/metadata

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


GET /layers/199/metadata?token=bw3ty3h46yth

layerId: id слоя

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

Ответ:

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

Формат: json


{
    metadata: {
        id: 179,
        owner: "dhedheh",
        dataCreate: "2011.12.28 09.47",
        dataUpdate: "2011.12.28 09.47",
        itemsCount: 45,
        type: {
            id: 1,
            name: "Космоснимки",
            fieldList: [
                {
                    id: 1,
                    name: "Облачность",
                    order: 1,
                    inTable: true,
                    inTableName: "clouds",
                    fieldType: {
                        id: 2,
                        name: "Облачность",
                        control: "input_integer",
                        geomType: null,
                        library: false,
                        libraryData: {}
                    },
                    necessary: false
                },
                {
                    id: 2,
                    name: "Спутники",
                    order: 5,
                    inTable: true,
                    inTableName: "sputnik_id",
                    fieldType: {
                        id: 1,
                        name: "Список спутников",
                        control: "combobox",
                        geomType: null,
                        library: true,
                        libraryData: {
                            1: "IKONOS (1м)",
                            2: "QuickBird (0.6м)",
                            3: "EROS-A (2м)",
                            4: "EROS-B (0.7м)",
                            5: "WorldView-1 (0.5м)",
                            6: "GeoEye-1 (0.5м)"
                        }
                    },
                    necessary: false
                }
            ]
        },
        additionalFieldValues: [
            {
                field: {
                    id: 4,
                    name: "test11rrty",
                    order: 6,
                    inTable: false,
                    inTableName: null,
                    fieldType: {
                        id: 3,
                        name: "целое число",
                        control: "input_integer",
                        geomType: null,
                        library: false,
                        libraryData: {}
                    },
                    necessary: false
                },
                value: "213434априцукнр"
            }
        ],
        tableData: {
            clouds: "45",
            tecy_777: null,
            sputnik_id: "1",
            data: "2011-12-14 00:00:00+04",
            test777: "1",
            geom: null,
            layer_id: "179",
            quicklook: "kosmosnimok2012_02_08_05_06_06.jpg"
        }
    }
}



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

// является ли обязательным,булевое поле


























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

// является ли обязательным,булевое поле

// значение поля


// основная таблица с данными, объект
// поле таблицы и его значение

Статус: 404 — слой не найден

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /layers/{layerId}/metadata/quicklook/{file}

Отображение превью-картинки у метаданных, если она присутствует

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


GET /layers/179/metadata/quicklook/kosmosnimok2012_02_08_05_06_06.jpg?token=bw3ty3h46yth

layerId: id слоя

file: название файла, приходит в качестве значения поля превью у метаданных

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

Ответ:

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

Формат: image/jpeg и т.д.

Статус: 404 — картинка не найдена

Формат: text/plain

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

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

Формат: text/plain

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

GET /layers/{layerId}/attributes

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


GET /layers/199/attributes?token=bw3ty3h46yth

layerId: id слоя

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

Ответ:

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

Формат: json


{
    "name": "vamin_kioski_p_vwType",
    "features": [
        {
            "nillable": true,
            "name": "srnaimenovanie",
            "maxOccurs": "1",
            "type": "{http://www.w3.org/2001/XMLSchema}string",
            "minOccurs": 0
        }
    ]
}



// название слоя английское
// массив атрибутов
// объект атрибута

// название, строка

// тип

Статус: 404 — слой не найден

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

mapSurfer — rest — groups

GET /groups

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


GET /groups?token=bw3ty3h46yth

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

Ответ:

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

Формат: json


{
    "groups": [
        {
            "id": 32,
            "name": "Группа 1",
            "order": "1"
        }
    ]
}



// массив объектов с информацией по группе

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

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

Формат: text/plain

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

GET /groups/withLayers

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

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


GET /groups/withLayers?token=bw3ty3h46yth

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

Ответ:

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

Формат: json


{
    "groups": [
        {
            "id": 32,
            "name": "Группа1",
            "order": "1",
            "groupLayers": [
                {
                    "layer": {
                        "id": 10,
                        "name": "Слой 1",
                        "enabled": false,
                        "info": {
                            "id": 10,
                            "typeName": "test:test_layer",
                            "style": "test_layer_a",
                            "service": "WMS",
                            "poly": false,
                            "requestUrl": "/service/wms"
                        },
                        "fields": [
                            {
                                "id": 4076,
                                "name": "adm_znach",
                                "nameRu": "Поле 1Œ",
                                "order": 1,
                                "title": false
                            }
                        ],
                        "isKosmosnimok": false
                    },
                    "order": 1,
                    "groupId": 32
                }
            ]
        }
    ]
}



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

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

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


// является ли космоснимком, булевое поле

// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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

GET /groups/shortdata/withLayers

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

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


GET /groups/shortdata/withLayers?token=bw3ty3h46yth

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

Ответ:

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

Формат: json


{
    "groups": [
        {
            "id": 32,
            "name": "Группа1",
            "order": "1",
            "groupLayers": [
                {
                    "layer": {
                        "id": 10,
                        "name": "Слой 1",
                        "enabled": false,
                        "info": {
                            "id": 10,
                            "typeName": "test:test_layer",
                            "style": "test_layer_a",
                            "service": "WMS",
                            "poly": false,
                            "requestUrl": "/service/wms",
                        },
                    },
                    "order": 1,
                    "groupId": 32
                }
            ]
        }
    ]
}



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

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


// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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

GET /groups

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


GET /groups?name=Пункт&token=bw3ty3h46yth

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

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

Ответ:

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

Формат: json


{
    "groups": [
        {
            "id": 32,
            "name": "Группа 1",
            "order": "1"
        }
    ]
}



// массив объектов с информацией по группе

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

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

Формат: text/plain

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

GET /groups/withLayers

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

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


GET /groups/withLayers?name=Пункт&token=bw3ty3h46yth

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

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

Ответ:

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

Формат: json


{
    "groups": [
        {
            "id": 32,
            "name": "Группа1",
            "order": "1",
            "groupLayers": [
                {
                    "layer": {
                        "id": 10,
                        "name": "Слой 1",
                        "enabled": false,
                        "info": {
                            "id": 10,
                            "typeName": "test:test_layer",
                            "style": "test_layer_a",
                            "service": "WMS",
                            "poly": false,
                            "requestUrl": "/service/wms"
                        },
                        "fields": [
                            {
                                "id": 4076,
                                "name": "adm_znach",
                                "nameRu": "Поле 1Œ",
                                "order": 1,
                                "title": false
                            }
                        ],
                        "isKosmosnimok": false
                    },
                    "order": 1,
                    "groupId": 32
                }
            ]
        }
    ]
}



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

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

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


// является ли космоснимком, булевое поле

// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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

GET /groups/{groupId}

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


GET /groups/224?token=bw3ty3h46yth

groupId: id группы

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

Ответ:

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

Формат: json


{
    group: {
        id: 32,
        name: "Базовые слои",
        order: "1"
    }
}



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

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

Формат: text/plain

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

GET /groups/{groupId}/withLayers

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

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


GET /groups/224/withLayers?token=bw3ty3h46yth

groupId: id группы

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

Ответ:

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

Формат: json


{
    "group": {
        "id": 32,
        "name": "Населенные пункты",
        "order": "1",
        "groupLayers": [
            {
                "layer": {
                    "id": 10,
                    "name": "Населенные пункты",
                    "enabled": false,
                    "info": {
                        "id": 10,
                        "typeName": "test:test_a",
                        "style": "style_test__a",
                        "service": "WMS",
                        "poly": true,
                        "requestUrl": "/service/wms"
                    },
                    "fields": [
                        {
                            "id": 4076,
                            "name": "test",
                            "nameRu": "Поле1",
                            "order": 1,
                            "title": true
                        }
                    ],
                    "isKosmosnimok": false
                },
                "order": 1,
                "groupId": 32
            }
        ]
    }
}



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

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

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


// является ли космоснимком, булевое поле

// порядок слоя в списке, целое число
// id группы

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

Формат: text/plain

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