examples
Ниже приведены основные сценарии работы и примеры запросов к Isochrone API. В примерах запросов используется cURL. Подробную информацию о параметрах запросов см. в Справочнике API.
Для начала работы с Isochrone API получите API-ключ.
Время в пути
Вы можете строить зоны доступности для нескольких значений времени в пути. Например, получить области, куда можно добраться от заданной точки за 5, 10, 20 и 30 минут. Результатом запроса будут несколько зон доступности, рассчитанные для разных значений времени.
Пример зон доступности для автомобиля для разного времени в пути:
Чтобы построить несколько зон доступности для разного времени в пути, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — массив со значениями времени в пути в секундах. Например, 600 секунд (10 минут) и 1200 секунд (20 минут).start
(обязательный параметр) — координаты точки (широта и долгота).
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600, 1200],
"start": {
"lat": 55.76259,
"lon": 37.668598
}
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 1200,
"geometry": "MULTIPOLYGON(((37.677025 55.712329, 37.712186 55.723263, 37.713465 55.726161, 37.709961 55.729575, 37.712752 55.73205, 37.723211 55.729428, 37.728062 55.730713, 37.716695 55.733873, 37.707652 55.742093, 37.713459 55.743031, 37.712826 55.747938, 37.719169 55.748588, 37.72119 55.751678, 37.726243 55.751194, 37.718632 55.755744, 37.722462 55.765979, 37.71662 55.775074, 37.71971 55.776515, 37.725232 55.772232, 37.724149 55.775074, 37.729106 55.777348, 37.716311 55.781895, 37.723482 55.785152, 37.723579 55.787371, 37.718537 55.789495, 37.715397 55.79682, 37.710557 55.797507, 37.707406 55.803689, 37.702522 55.803216, 37.704172 55.806892, 37.698957 55.810867, 37.692495 55.810523, 37.699551 55.80609, 37.699409 55.80323, 37.688851 55.800338, 37.684808 55.803965, 37.685741 55.800688, 37.676723 55.792926, 37.660305 55.793119, 37.659905 55.801212, 37.662575 55.802812, 37.667291 55.801212, 37.665698 55.80462, 37.669823 55.806892, 37.666617 55.809297, 37.664596 55.806342, 37.658354 55.808128, 37.653311 55.803011, 37.657089 55.800076, 37.651033 55.797804, 37.656779 55.794244, 37.640342 55.794036, 37.634278 55.797558, 37.633561 55.790986, 37.628003 55.787577, 37.629452 55.785304, 37.624172 55.78452, 37.622128 55.786453, 37.622782 55.781539, 37.615774 55.781895, 37.618618 55.774788, 37.613055 55.773937, 37.618733 55.773152, 37.620179 55.770555, 37.616087 55.770062, 37.61883 55.765979, 37.615621 55.763704, 37.623029 55.764199, 37.623529 55.754606, 37.629742 55.754884, 37.630686 55.753469, 37.623295 55.752824, 37.620129 55.749452, 37.609065 55.746045, 37.609088 55.743842, 37.612619 55.744368, 37.6116 55.740705, 37.615199 55.739817, 37.613887 55.737441, 37.622613 55.737802, 37.624911 55.730713, 37.622502 55.729575, 37.630235 55.728383, 37.63832 55.730918, 37.642852 55.72985, 37.644384 55.722691, 37.648426 55.727577, 37.648448 55.726173, 37.655277 55.725466, 37.654394 55.721607, 37.657089 55.720469, 37.656129 55.728437, 37.66084 55.72746, 37.661302 55.71933, 37.658532 55.720089, 37.657955 55.718192, 37.660469 55.715868, 37.663352 55.716353, 37.662531 55.712474, 37.664596 55.7122, 37.665951 55.717429, 37.672681 55.719777, 37.677532 55.714776, 37.673691 55.71193, 37.677025 55.712329)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
},
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.671425 55.740524, 37.677274 55.74323, 37.673018 55.744368, 37.674036 55.745881, 37.679827 55.746643, 37.67066 55.748597, 37.674355 55.752331, 37.672919 55.758018, 37.679722 55.755744, 37.676779 55.753469, 37.678744 55.751896, 37.684294 55.756033, 37.690939 55.755706, 37.697676 55.758018, 37.696935 55.761974, 37.691458 55.760623, 37.688325 55.762567, 37.688851 55.76661, 37.684446 55.765979, 37.688567 55.770527, 37.688667 55.776211, 37.676723 55.774751, 37.677075 55.778683, 37.667894 55.778903, 37.669116 55.775942, 37.647488 55.772191, 37.646015 55.76917, 37.660944 55.760073, 37.655016 55.756585, 37.654889 55.750969, 37.648426 55.753371, 37.64191 55.748919, 37.646405 55.747078, 37.648008 55.749154, 37.651784 55.748919, 37.65449 55.745885, 37.6612 55.74587, 37.658532 55.743055, 37.664596 55.741042, 37.669263 55.742444, 37.671425 55.740524)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "driving",
"status": "OK",
"generation_time": 0
}
Направление движения
По умолчанию при построении зоны доступности используется направление движения от заданной точки: строится область, в которую можно попасть из точки за указанное время. Вы можете строить обратные зоны доступности и рассчитывать области, от границ которых можно попасть за указанное время до заданной точки.
Параметр направления движения
reverse
не поддерживается для общественного транспорта ("transport": "public_transport"
).
Пример зон доступности для автомобиля со временем в пути 10 минут для р азных направлений движения:
От точки
Чтобы построить зону доступности, до границ которой можно добраться из заданной точки за определ ённое время, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."reverse": "false"
— направление движения: от заданной точки.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"reverse": false
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.671764 55.740333, 37.677047 55.743182, 37.674359 55.745699, 37.679428 55.746461, 37.672282 55.749468, 37.674679 55.752149, 37.672818 55.757941, 37.680038 55.755562, 37.677014 55.753287, 37.679068 55.752078, 37.685132 55.756095, 37.697976 55.758974, 37.697468 55.761366, 37.691195 55.760907, 37.687186 55.76466, 37.689599 55.766934, 37.686716 55.768071, 37.688758 55.770345, 37.686293 55.773755, 37.689238 55.777202, 37.686974 55.777266, 37.677047 55.773514, 37.674489 55.775194, 37.678057 55.776029, 37.67729 55.778439, 37.666941 55.778839, 37.669411 55.775777, 37.658159 55.773363, 37.654813 55.775107, 37.644707 55.769939, 37.649316 55.76839, 37.655345 55.761547, 37.661115 55.761248, 37.656087 55.759394, 37.65522 55.750783, 37.648613 55.753364, 37.642261 55.748737, 37.646729 55.746949, 37.648167 55.749065, 37.653306 55.749026, 37.654813 55.746288, 37.657753 55.746979, 37.658631 55.742922, 37.671764 55.740333)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "driving",
"status": "OK",
"generation_time": 0
}
К точке
Чтобы построить зону доступности, от границ которой можно добраться до заданной точки за определённое время, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."reverse": "true"
— направление движения: к заданной точке.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"reverse": true
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.656899 55.747563, 37.660877 55.750941, 37.667082 55.749795, 37.666481 55.752408, 37.673954 55.751615, 37.673004 55.758021, 37.679624 55.755875, 37.677047 55.750878, 37.685132 55.755923, 37.689961 55.755562, 37.68713 55.750999, 37.693216 55.753925, 37.697259 55.749726, 37.695551 55.753287, 37.699438 55.754335, 37.698567 55.755963, 37.707574 55.754306, 37.702249 55.758974, 37.707603 55.760111, 37.700529 55.766934, 37.70743 55.771482, 37.701017 55.771641, 37.697259 55.767674, 37.694706 55.770345, 37.704189 55.777166, 37.697453 55.782959, 37.685132 55.777203, 37.674788 55.779573, 37.670553 55.778061, 37.673408 55.780576, 37.666941 55.782937, 37.662743 55.781713, 37.669308 55.775834, 37.656835 55.773434, 37.650771 55.776132, 37.647434 55.771085, 37.642349 55.770534, 37.649359 55.766934, 37.64437 55.767123, 37.640481 55.763522, 37.643417 55.760111, 37.638644 55.758136, 37.645137 55.758078, 37.648264 55.755562, 37.646587 55.75207, 37.655458 55.751375, 37.654687 55.747599, 37.656899 55.747563)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "driving",
"status": "OK",
"generation_time": 0
}
Способы передвижения
По умолчанию в запросе для построения зон доступности передаётся значение параметра "transport": "driving"
(способ передвижения на автомобиле). Вы можете строить зоны доступности для других способов передвижения.
Пример зон доступности со временем в пути 10 минут для разных способов передвижения:
Пешком
Чтобы построить зону доступности для способа передвижения пешком, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."transport": "walking"
— способ передвижения: пешком.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"transport": "walking"
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.662471 55.758456, 37.667496 55.760177, 37.668562 55.759173, 37.674189 55.759444, 37.674698 55.76219, 37.679468 55.762539, 37.679533 55.763729, 37.675547 55.764126, 37.677111 55.765137, 37.67694 55.767324, 37.675749 55.766934, 37.674109 55.768258, 37.668562 55.769329, 37.665867 55.767869, 37.664 55.768209, 37.663388 55.767037, 37.661376 55.767403, 37.659616 55.766632, 37.656536 55.76261, 37.658681 55.76194, 37.659749 55.762706, 37.661168 55.758567, 37.662471 55.758456)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "walking",
"status": "OK",
"generation_time": 0
}
На автомобиле
По умолчанию при построении зоны доступности для способа передвижения на автомобиле ("transport": "driving"
) используется информация о текущих пробках. Чтобы для расчёта использовалась информация о статистических пробках, укажите время отправления.
Чтобы построить зону доступности для автомобиля, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."transport": "driving"
— способ передвижения: на автомобиле.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"transport": "driving"
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.671829 55.740296, 37.678057 55.743048, 37.674366 55.745695, 37.679428 55.746461, 37.672291 55.749473, 37.67468 55.752149, 37.672818 55.757941, 37.680023 55.755562, 37.676981 55.753287, 37.679068 55.752046, 37.685132 55.756087, 37.697641 55.757836, 37.697259 55.762304, 37.691195 55.76091, 37.687249 55.76466, 37.68964 55.766934, 37.686718 55.768071, 37.688868 55.770345, 37.686293 55.773755, 37.689174 55.777734, 37.677047 55.773512, 37.674479 55.7752, 37.677241 55.778412, 37.666941 55.778597, 37.668962 55.775589, 37.662898 55.77566, 37.658151 55.773359, 37.654813 55.775055, 37.644707 55.769939, 37.649316 55.76839, 37.655345 55.761547, 37.661115 55.761248, 37.656105 55.759384, 37.655218 55.750784, 37.64859 55.753377, 37.642385 55.748567, 37.646729 55.746932, 37.648172 55.749062, 37.653297 55.749021, 37.654813 55.746219, 37.658711 55.74638, 37.658599 55.742904, 37.671829 55.740296)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "driving",
"status": "OK",
"generation_time": 0
}
На велосипеде
Чтобы построить зону доступности для велосипеда, отправьте POST-запрос на /isochrone/2.0.0 со следующими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."transport": "bicycle"
— способ передвижения: на велосипеде.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"transport": "bicycle"
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.667264 55.748934, 37.666927 55.752646, 37.673416 55.752915, 37.670845 55.757465, 37.67228 55.758244, 37.672603 55.756707, 37.677707 55.755154, 37.680402 55.756555, 37.688936 55.756454, 37.68877 55.758223, 37.691182 55.759277, 37.692529 55.757591, 37.697245 55.758981, 37.69338 55.761734, 37.692486 55.765046, 37.6871 55.764266, 37.687099 55.765069, 37.688206 55.765204, 37.688168 55.766741, 37.689957 55.768078, 37.690043 55.770352, 37.68556 55.772496, 37.685547 55.774004, 37.67865 55.775658, 37.673311 55.775459, 37.67198 55.777173, 37.666927 55.776781, 37.66019 55.773861, 37.657127 55.7749, 37.647877 55.771868, 37.642956 55.764288, 37.645132 55.763397, 37.645353 55.758973, 37.650348 55.757993, 37.652217 55.753673, 37.667264 55.748934)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859397324314,
"lat": 55.76279352485273
}
]
}
],
"format": "wkt",
"transport": "bicycle",
"status": "OK",
"generation_time": 0
}
На общественном транспорте
По умолчанию зоны доступности строятся для всех доступных видов общественного транспорта. Вы можете выбрать определённые виды общественного транспорта: метро, трамвай, автобус, троллейбус и другие.
В некоторых случаях результат может представлять несколько полигонов, в том числе несплошных: с вырезанными полигонами внутри. Например, за 10 минут на метро вы можете добраться до отдалённой области, поэтому в результат будет включена эта область. Также в результат включится область вокруг заданной стартовой точки (станции метро).
Пример зон доступности со временем в пути 10 минут для разных видов общественного транспорта:
Чтобы построить зону доступности для общественного транспорта, отправьте POST-запрос на /isochrone/2.0.0 со следу ющими параметрами:
durations
(обязательный параметр) — время в пути.start
(обязательный параметр) — координаты точки (широта и долгота)."transport": "public_transport"
— способ передвижения: на общественном транспорте."public_transport_types": ["tram", "bus"]
— массив видов общественного транспорта. Напримерtram
— трамвай,bus
— автобус. Полный список видов общественного транспорта см. в описании параметра public_transport_types в Справочнике API. Если параметр не указан, будут построены зоны доступности для всех доступных видов общественного транспорта.
Пример запроса:
curl --request POST \
--url 'https://routing.api.2gis.com/isochrone/2.0.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"durations": [600],
"start": {
"lat": 55.76259,
"lon": 37.668598
},
"transport": "public_transport",
"public_transport_types": ["tram", "bus"]
}'
Пример ответа:
response.json
{
"isochrones": [
{
"duration": 600,
"geometry": "MULTIPOLYGON(((37.663459 55.758652, 37.667736 55.760289, 37.668789 55.758787, 37.670585 55.760282, 37.671483 55.759125, 37.674615 55.759697, 37.674067 55.762287, 37.677992 55.7621, 37.680445 55.763235, 37.675764 55.764245, 37.677279 55.767278, 37.672382 55.768751, 37.666992 55.769137, 37.666094 55.768068, 37.661313 55.76744, 37.658315 55.765084, 37.655113 55.764358, 37.658009 55.761741, 37.659935 55.762802, 37.660893 55.758686, 37.663459 55.758652)))",
"start_point": {
"lon": 37.66859801566192,
"lat": 55.762589995531236
},
"attract_points": [
{
"lon": 37.66859801566192,
"lat": 55.762589995531236
}
]
}
],
"format": "wkt",
"transport": "public_transport",
"status": "OK",
"generation_time": 0
}