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
Содержит описание ошибки
WFS
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
Для начала работы с 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);