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

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

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

mapSurfer — rest — service

WMS

GET /wms

Получение тайла слоя

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


GET /service/wms?service=WMS&request=GetMap&version=1.1.1&layers=kziokzn:vamin_kioski_p_vw&
        styles=vamin_kioski_p_vw_style_21_03_2011_19_20_16&format=image/png&transparent=true&height=256&
        width=256&srs=EPSG:900913&bbox=5283327.395071382,7514065.628545966,5322463.153553393,7553201.387027976&
        token=bw3ty3h46yth

service: сервис запроса WMS

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

version: версия 1.1.1

layers: английское название слоя или слоев через запятую

styles: название стиля или стилей через запятую

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

transparent: есть ли прозрачность

height: высота тайла

width: ширина тайла

srs: код проекции

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

cql_filter: строка CQL фильтра

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

Ответ:

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

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

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /wms

Запрос легенды слоя

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


GET /service/wms?request=GetLegendGraphic&style=vamin_kioski_p_vw_style_21_03_2011_19_20_16&
        layer=kziokzn:vamin_kioski_p_vw&format=image/png&token=bw3ty3h46yth

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

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

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

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

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

Ответ:

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

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

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /wfs

Получение WFS слоя

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


GET /service/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=DEMO:kfu_building&outputFormat=json&
        bbox=40.14404296875,52.905589081407825,61.23779296875,57.630699148918424&token=bw3ty3h46yth

service: сервис запроса WFS

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

version: версия 1.0.0

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

outputFormat: формат возвращаемых данных

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

srs: код проекции, по умолчанию EPSG:4326

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

Ответ:

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

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

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

GET /service/styles/{layerId}/{styleName}.sld

Запрос sld-файла стиля

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


GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=bw3ty3h46yth

layerId: id слоя

styleName: название стиля

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

Ответ:

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

Формат: text/xml

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

Формат: text/plain

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

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

Формат: text/plain

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

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

Формат: text/plain

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

mapSurfer — rest — auth

POST /auth/token

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

{
    "login": "testlogin",
    "password": "12345"
}

Ответ:

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

Формат: json

{
{
    "token": "ethryhetyjtyj",
    "refreshToken": "ethryhetyjtyj",
    "ttl": 3600
}
}


    // ключ доступа, строка
    // ключ для обновления ключа доступа, строка
    // время жизни ключа доступа в секундах, целое число

Статус: 401 — логин или пароль переданы неверно

Формат: text/plain

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

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

Формат: text/plain

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

GET /auth/token/refresh

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


GET /auth/token/refresh?refreshToken=738975947453
}

refreshToken: ключ для обновления ключа доступа

Ответ:

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

Формат: json

{
    "token": "ethryhetyц4564",
    "refreshToken": "yrjryukryukryu",
    "ttl": 3600
}
}

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

Статус: 400 — не передан параметр refreshToken

Формат: text/plain

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

Статус: 404 — параметр refreshToken не найден в системе

Формат: text/plain

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

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

Формат: text/plain

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

GET /auth

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


GET /auth?token=bw3ty3h46yth

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

Ответ:

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

Формат: json

{
    "authenticated": true,
    "user": {
        "id": 11,
        "name": "Пользователь",
        "right": {
            "id": 1,
            "name": "Права",
            "admin": false,
            "mapExtent": {
                "id": 2,
                "name": "Republic of Tatarstan",
                "extent": {
                    "minX": 46.09270788877181,
                    "minY": 53.99190870342375,
                    "maxX": 55.299713101706935,
                    "maxY": 56.68378708907719,
                    "projection": "EPSG:4326"
                }
            }
        }
    }
}
}

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

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

Формат: text/plain

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

GET /logout

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


GET /logout?token=bw3ty3h46yth

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

Ответ:

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

Формат: json

{
    "status": "ok"
}

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

Формат: text/plain

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

mapSurfer — API — ex

Для начала работы с API Вам необходимо в своем проекте сделать несколько подключений:


<script src="@utils.Config.baseHost/public/javascripts/libs/jquery/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="@utils.Config.baseHost/public/javascripts/libs/jquery/jquery-ui-1.9.2.custom.min.js" type="text/javascript"></script>

Кроме подключения jquery и jquery-ui, необходимо подключить сам API.


<script src="@utils.Config.baseHost/public/geoportal/geoportal-api.min.js" type="text/javascript"></script>

Для добавления карты у Вас должен быть DOM элемент, предположим, что он имеет id=”map”, тогда создание карты будет выглядеть следующим образом:


var map = new GeoPortal.Map(“map”);

Далее на эту карту наверняка понадобится добавить несколько слоев.
Предположим, что мы знаем id слоя, который нам нужно добавить на карту (пусть id буде равен 204), найдем этот слой и добавим на карту.


function exampleForLayer(layer){
    map.addLayer(layer);	//обавляем слой на карту
    layer.setOpasity(0.6);	//добавляем слою прозрачность
}

GeoPortal.Layer.findLayerById(
    204,
    exampleForLayer,
    function(status, error){
        console.log(error);
    }
);

Динамические объекты нужны для выделения областей, добавления на карту маркеров и т.д.
Примеры использования:


    var popup = new GeoPortal.Popup({closeButton: true, minWidth: 100});
    popup.setLatLng(new GeoPortal.LatLng(55,49));
    map.addLayer(popup)

    var marker = new GeoPortal.Marker(new GeoPortal.LatLng(55,49))
    map.addMarker(marker);

    var polyline = new GeoPortal.Vector.PolyLine([new GeoPortal.LatLng(55,49), new GeoPortal.LatLng(55.1, 49.1)]);
    map.addLayer(polyline);

mapAdmin — reg

POST /registration

Отправляется json строка с параметрами регистрации:

{
    "login": ,
    "paswd": ,
    "email": ,
    "status": ,
    "ur_fio": "",
    "ur_address": ,
    "phone":  
}

// логин
// пароль
// email
// 1 - юридическое лицо, 2 - физическое
// ФИО
// адрес
// телефон

Формат ответа:

{
    "res" : 1, 
    "resText":
}

GET /registration/form

general — общие поля

physicalPerson — поля для физических лиц

legalPerson — поля для юридических лиц

url — url для отправки полей на регистрацию

{ 
   "name":, 
   "rusName":, 
   "required":, 
   "values":
}

// английское название параметра
// русское название параметра
// обязательный ли параметр: true, false
// какие может применять значения (важен для параметра status)

Формат ответа:

{
    "res": 1,
        "fields": {
        "general": [{    
            "name": "login",
            "rusName": "Логин",
            "required": true,  
            "values": "" 
        }]
    },
    "url": "/rest/registration/" 
}




// название поля
// русское название поля
// обязательное ли поле true или false

POST /registration/checklogin

login — логин

 {
     "login": ""
 }

// логин

Формат ответа:

check = true — логина не существует в системе

check = false — логин существует в системе

{
     "res": 1,
     "check":
 }


// true или false, свободен ли логин

mapAdmin — version

GET /version

Формат ответа:

{
    "res": 1,
    "version":  
}


// версия

mapAdmin — users

Доступ для пользователей (кроме администратора всех ведомств, которому всегда доступен запрос) определяется в настройках системы

GET /users

Формат ответа:

{
    "res": 1,
    "users": [{
        "id": ,
        "login": ,
        "fio": ,
        "role_id": ,
        "department_id":  
    }]
}



// id пользователя
// логин
// ФИО
// id роли: 6, 7 - обычный пользователь, 10 - админ ведомства, 8 - админ всех ведомств
// id ведомства, либо null, если пользователь с ролью 8

Формат ответа, если нет доступа:

{
    "res": 0,
    "resText": "У вас нет прав для получения данных." 
}

GET /users/count

Формат ответа:

{
    "res": 1,
    "count": "{количество}" 
}

GET /users/standartStore

Формат ответа:

{
    "res": 1,
    "store": {
        "id": ,
        "host": ,
        "port": ,
        "database": 
    }
}




// ip адрес host, напр."178.213.246.98"
// порт, напр. "5432"
// название базы данных, напр. "testdb2" 

mapAdmin — departments

Путь к логотипам ведомств:

/department_files/department_logo

Cписок организаций / ведомств, доступных в АРМ Губернатора

GET /departments/

Формат ответа:

{
	"res": 1,
	"departments": [{
		"id": "{}",
		"name": "{}",
		"logo": "{}",
		"people_dep": "{}",
		"arm_view": "{}",
		"map_extent_id": "{}",
		"users_count": "{}",
		"right_id": 0
	}]
}



// id ведомства/организации
// название ведомства/организации
// название логотипа
// является ли ведомство ведомством населения
// отображать ведомство в АРМ Губернатора
// id положения карты
// количество пользователей
// id права

GET /departments/{all|arm}/{limit}/{offset}

all — все

arm — видимые в АРМ Губернатора

limit — количество организаций, выводимых в запросе

offset — количество организаций, которое будет пропущено в общем списке и после него будет формироваться запрос

Формат ответа:

{
	"res": 1,
	"departments": [{
		"id": "{}",
		"name": "{}",
		"logo": "{}",
		"people_dep": "{}",
		"arm_view": "{}",
		"map_extent_id": "{}",
		"users_count": "{}",
		"right_id": 0
	}]
}



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

GET /departments/count

Формат ответа:

{
    "res": 1,
    "count":  
}


// количество

GET /departments/{departmentId}/name

Формат ответа:

{
    "res": 1,
    "department_name":  
}


// название

Доступ для пользователей (кроме администратора всех ведомств, которому всегда доступен запрос) определяется в настройках системы

GET /departments/{departmentId}/users

Формат ответа:

{
    "res": 1,
    "users": [{
        "id": ,
        "login": ,
        "fio": ,
        "role_id": ,
        "department_id": "" 
    }]
}



// id пользователя
// логин
// ФИО
// id роли: 6, 7 - обычный пользователь, 10 - админ ведомства, 8 - админ всех ведомств
// id ведомства, либо null, если пользователь с ролью 8

Формат ответа, если нет доступа:

{
    "res": 0,
    "resText": "У вас нет прав для получения данных." 
}

mapAdmin — city

Путь к фотографиям городов: /department_files/city_photos

Список городов

GET /city

Формат ответа:

{
	"res": 1,
	"cities": [{
		"id": ,
		"name": ,
		"photo": ,
		"matrix": ,
		"order": 
	}]
}



// id города
// название
// название фотографии
// матрица перелета
// порядок отображения

mapAdmin — files

POST /files/upload/{photos|video|files|sounds|sld}

Передавать файл в переменной Filedata (Content-Disposition: name=»Filedata»;)