API сервиса построения маршрутов router.geo4.me
Определение местоположения
Данный сервис необходим для определения местоположения ближайшей точки дорожной сети к указанной координате.
Ближайшая точка определяется при отправке запроса следующего формата:
GET/locate?loc=lat,lon
Структура запроса:
GET/locate?loc=52.4224,13.333086
lat: широта
lon: долгота
Ответ:
{
"mapped_coordinate": [52.42244, 13.332101],
"status": 0
}
Ближайшая точка
Данный сервис позволяет определить ближайшую точку на некотором участке улицы дорожной сети к указанной координате.
Ближайшая точка определяется при отправке запроса следующего формата:
GET/nearest?loc=lat,lon
Структура запроса:
GET/nearest?loc=52.4224,13.333086
lat: широта
lon: долгота
Ответ:
{
"name": "Mariannenstraße",
"mapped_coordinate": [52.422592, 13.333837],
"status": 0
}
// название улицы
// координаты на карте
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута
При использовании вышеупомянутого синтаксиса ответ приходит в формате JSON, который может быть дополнительно обработан многими языками программирования. При этом на выходе данные могут быть отформатированы как JSONP:
GET/nearest?52.555485441735&13.342227642887&jsonp=function
Запрос возвращает результат в формате JSON, обёрнутый функцией (), которая может быть легко переработана при помощи JavaScript:
function({"status":0,"result":[52.55567, 13.34252]"})
Построение маршрута
Данный сервис позволяет построить кратчайший маршрут через указанные координаты с учетом порядка следования координат. Основные точки между координатами (lat1, lon1) и (lat2, lon2) запрашиваются следующим образом:
GET/viaroute?loc=lat1,lon1&loc=lat2,lon2
Структура запроса:
GET/viaroute?loc= 55.7887400, 49.1221400&loc= 55.8437600, 48.5178400
lat: широта
lon: долгота
Чтобы построить маршрут через определенные координаты, перечислите их в запросе string в порядке своего появления (на текущий момент стоит максимальное ограничение в 25 точек).
При построении маршрута появляется параметр hint_data, который дает (кодированную) достоверную информацию о начальных и конечных точках. При этом при реализации API предполагается следующее:
- добавление &checksum=… в URL, где ‘…’ – это контрольная сумма в hint_data.checksum из предыдущего запроса.
- добавление &hint=… после каждого &loc=… параметра, если он не меняется по сравнению с предыдущим запросом.
- в случае, если координаты были изменены, то они не дают никакой «подсказки» для указанной координаты.
- «подсказки» должны быть размещены непосредственно после параметра &loc=…
Ответ:
{
"hint_data": {
"locations": ["1","2"],
"checksum": 3637997664
},
"route_name": ["1","2"],
"found_alternative": false,
"via_points": [[55.788872,49.121826],
[55.843784,48.517399]],
"route_summary": {
"end_point": "",
"start_point": "Университетская улица",
"total_time": 3128,
"total_distance": 42557
},
"route_geometry": "",
"status_message": "Found route between points",
"via_indices": [0, 362],
"status": 0
}
// информация о «подсказывающих» данных
// местоположение
// контрольная сумма
// массив строк, который хранит наименования маршрутов
// поиск альтернатив
// массив точек, в котором каждая точка представляет собой массив координат: [lat, lon]
// общие сведения о маршруте
// конечная точка
// начальная точка
// общее время пути в секундах
// общая длина в метрах
// геометрия маршрута
// сообщение о статусе (находит маршрут между точками или нет)
// целочисленный массив, который содержит положение начальных и конечных путевых точек
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута
Таблица расстояний по дорожной сети
Запрос по таблицам расстояний аналогичен запросу по маршруту. Схема запроса по таблице расстояний выглядит следующим образом:
GET/table?loc=lat1,lon1&loc=lat2,lon2&…loc=latX,lonX
Структура запроса:
GET/table?loc=52.554070,13.160621&loc=52.431272,13.720654&loc=52.554070,13.720654&loc=52.554070, 13.160621&z=14
lat: широта
lon: долгота
Ответ:
{
"distance_table": [
[0, 26084, 22942, 26989],
[26319, 0, 30810, 19607],
[22782, 30482, 0, 37495],
[27376, 19415, 37693, 0]
]
}
Параметры
В запрос может быть добавлен ряд дополнительных параметров:
Название параметров | Описание параметров |
&z={0,…,18} | Определяет уровень масштабирования и упрощает геометрию маршрута (то есть на сколько точной будет возвращаемая геометрия маршрута). |
output={json, gpx} | Форматирует выходные данные как JSON или GPX. |
&jsonp=_function_ | Форматирует выходные данные как JSONP, обернутые функцией. |
&instructions={true, false} | Возвращает инструкции для каждого маршрута в виде массива.
|
&alt={true, false} | Возвращает альтернативный маршрут при его наличии. |