API Спутник/КартыСервис маршрутов
Маршруты
Запрос viaroute
Запрос viaroute
позволяет найти кратчайший путь между несколькими точками. Поддеживается расчет альтернативных маршрутов, маршрут сопровождается тестовым описанием.
Запрос
http://{baseUrl}?loc={lat,lon}&loc={lat,lon}<&loc={lat,lon} ...>
Тип маршрутов | baseUrl |
---|---|
Автомобильные | http://routes.maps.sputnik.ru/osrm/router/viaroute |
Пешеходные | http://footroutes.maps.sputnik.ru/ |
Parameter | Values | Description |
---|---|---|
loc | lat,lon | Положение начальной/конечной/промежуточной точки |
locs | Encoded polyline | Точки можно задать в формате polyline |
z | 0 ... 18 (default) | Уровень масштаба (используется для генерализации геометрий) |
output | json (default), gpx | Формат ответа |
instructions | true , false (default) | Return route instructions for each route |
alt | true (default), false | Прокладывать альтернативный маршрут, если возможно |
geometry | true (default), false | Возвращать геометрию маршрута |
uturns | false (default), true | Возможность развернуться в начальной/конечной/промежуточной точках маршрута |
u | false (default), true | Возможность развернуться в заданной точке маршрута. Задается после loc . |
Ответ
route_geometry
- геометрия в формате polyline, с точностью до 6-го знака. Можно использоватьnpm
-модуль polyline для декодировки.route_instructions
- массив, содержащий инструкции для каждого сегмента маршрута. Каждый элемент массива представлен в следующей форме:[{drive instruction code}, {street name}, {length}, {location index}, {time}, {formated length}, {direction}, {azimuth}]
driving directions code
- целочисленные коды поворотов (описаны в файле turn_instructions.hpp).street name
- название улицы (строка)length
- длина улицы в метрах (целое число)position
- индекс для списка координат (целое число)time
- время движения в секундах (число с плавающей точкой)formated length
- длина с размерностью (строка)direction
- направление N: север(north), S: юг(south), E: восток(east), W: запад(west), NW: севеол-запад(North West), … (строка)azimuth
- азимут (число с плавающей точкой)mode
- режим работы (целое число)
route_summary
- общая информацияtotal_distance
- общая длина в метрах (целое число)total_time
- общее время в секундах (целое число)start_point
- название начальной улицы (строка)end_point
- название конечной улицы (строка)
route_name
- название маршрута (строка)via_indices
- индекс для списка координат (целое число)via_points
- массив точек, через которые проложен маршрут (массив координат в формате[lat, lon]
)hint_data
- эта информация может быть использована для ускорения сборки при незначительном изменении маршрутаchecksum
- необходимо передать при следующем запросеlocations
- массив хинтов
found_alternative
- строить альтернативный маршрутtrue
илиfalse
Если запрошены альтернативные маршруты (alt=true
), в ответе могут присутствовать также следующие поля:
alternative_geometries
- массивroute_geometry
alternative_instructions
- массивroute_instructions
alternative_summaries
- массивroute_summary
alternative_names
- массивroute_name
Пример
Запрос:
http://routes.maps.sputnik.ru/osrm/router/viaroute?loc=52.503033,13.420526&loc=52.516582,13.429290&instructions=true
Ответ:
{
"alternative_names": [
[
"Adalbertstraße",
"Lichtenberger Straße"
]
],
"route_name": [
"Bethaniendamm",
"Andreasstraße"
],
"alternative_indices": [
0,
37
],
"status_message": "Found route between points",
"route_geometry": "_~occBa~brXoL{GyY{QaW}OoN{IoHuEcIcFeM}HoKyGuBsAZ}Ip@aUXaZIqT_@sUi@kNgCk`@wAePsCwTwDuTsG}YwIsZgFuMmB_F_HmQ}NoVgFyGoCsDmK}KgLaJuHeEqN}JuEeDwFGmIKkNq@_N}AgQiMyNgMkDqCuGiHyb@u]kLoJk]gYsPeImg@{MoJgCw`@sK_Ck@ot@qPkBg@_D{@cHgBeR}E{\\yIm_@}JuEeAiGaBuBi@eMcDuPkE{Djo@{@jMaCp_@eKt_BkTeGcg@oMkG}AfCn@",
"route_instructions": [
[
"10",
"Adalbertstraße",
251,
0,
33,
"251m",
"N",
22
],
[
"2",
"Bethaniendamm",
706,
9,
65,
"705m",
"E",
99
],
[
"1",
"Schillingbrücke",
90,
39,
8,
"90m",
"NE",
34
],
[
"1",
"An der Schillingbrücke",
121,
41,
14,
"121m",
"NE",
28
],
[
"1",
"Andreasstraße",
533,
44,
49,
"532m",
"N",
13
],
[
"7",
"Singerstraße",
212,
60,
31,
"212m",
"W",
281
],
[
"3",
"Krautstraße",
136,
64,
16,
"135m",
"N",
13
],
[
"15",
"",
0,
68,
0,
"0m",
"N",
0
]
],
"alternative_summaries": [
{
"end_point": "Krautstraße",
"start_point": "Adalbertstraße",
"total_time": 228,
"total_distance": 2020
}
],
"via_points": [
[
52.503025,
13.420529
],
[
52.516579,
13.429288
]
],
"route_summary": {
"end_point": "Krautstraße",
"start_point": "Adalbertstraße",
"total_time": 214,
"total_distance": 2050
},
"found_alternative": true,
"status": 0,
"via_indices": [
0,
69
],
"hint_data": {
"locations": [
"cbwZAHa8GQCmTgAAFgAAAFUAAAAAAAAAAAAAAP_____wISED8cfMAAAAVJ0",
"nva-A7dw5waFawEATgAAAAAAAAAAAAAAFwAAABKp7wPkViEDKOrMAAAAAAA"
],
"checksum": 641772483
},
"alternative_geometries": [
"_~occBa~brXoL{GyY{QaW}OoN{IoHuEcIcFeM}HoKyGuBsA}U}OcvA}}@{wBuuA}SvkAgAhGeCfNeD`RaZbbB{bBegAeTkN{QsLkK}G_]wZkIcIaKyJgUaTiFeMqi@gz@{RkSmOyO}_Aqz@bGww@xGukAkTeGcg@oMkG}AfCn@"
],
"alternative_instructions": [
[
[
"10",
"Adalbertstraße",
700,
0,
97,
"699m",
"N",
22
],
[
"7",
"L 1066",
259,
12,
25,
"259m",
"NW",
294
],
[
"3",
"Michaelkirchstraße",
296,
17,
26,
"296m",
"NE",
24
],
[
"1",
"Michaelbrücke",
61,
21,
5,
"61m",
"NE",
29
],
[
"1",
"An der Michaelbrücke",
92,
22,
8,
"92m",
"NE",
31
],
[
"1",
"Lichtenberger Straße",
328,
25,
31,
"327m",
"NE",
51
],
[
"3",
"Singerstraße",
148,
30,
22,
"147m",
"E",
103
],
[
"7",
"Krautstraße",
136,
32,
16,
"135m",
"N",
13
],
[
"15",
"",
0,
36,
0,
"0m",
"N",
0
]
]
]
}