Archives by date

You are browsing the site archives by date.

REST API Сервис построения маршрутов

REST API Сервис построения маршрутов

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
}


// координаты на карте
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута

Ближайшая точка

Данный сервис позволяет определить ближайшую точку на некотором участке улицы дорожной сети к указанной координате.
Ближайшая точка определяется при отправке запроса следующего формата:

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} Возвращает инструкции для каждого маршрута в виде массива.

  • 0 – направление пути
  • 1 – название маршрута (строка)
  • 2 – длина в метрах (целое число)
  • 3 – положение
  • 4 – время в секундах
  • 5 – длина в метрах (строка)
  • 6 – аббревиатура направления (N – север, S – юг, E – восток, W — запад)
  • 7 – азимут
&alt={true, false} Возвращает альтернативный маршрут при его наличии.