Область достижимости

Область достижимости  сервис, который позволяет рассчитать контуры областей (изолинии), которые можно достичь из выбранного местоположения при указанном в запросе ограничении (на время в пути, либо на пройденное расстояние). Рассчитанные контуры возвращаются в виде замкнутой линии либо полигона, которые можно отобразить на карте.

/iso  точка вызова сервиса расчёта области достижимости. Возможные варианты построения изолиний:

  • изохроны (isochrone, линии равного времени в пути);
  • изодистанты (isodistance, линии равных расстояний).

Запрос

Запрос передается в формате json в HTTP body. json запроса состоит из обязательных и не обязательных полей. В url запроса должны быть заданы обязательные параметры.

Простой пример json запроса: 

{
   "locations":[
      {
         "lat":55.796932,
         "lon":37.537849
      }
   ],
   "costing":"pedestrian",
   "speed":5.6,
   "contours":[
      {
         "time":15
      },
      {
         "time":30
      }
   ],
   "id":"Iso_Test",
   "generalize":5
}

По данному запросу вокруг заданной координаты будут сгенерированы две изохроны, ограничивающие области, которые пешеход может пройти из координаты за 15 и 30 минут. Скорость пешехода принимается за 5.6 км/ч.

Обязательные url-параметры запроса

Имя параметра
Формат
Описание
Пример
api_key hex-string Доступ к сервисам
fa749bace6d8a3b1....

Обязательные json-поля в HTTP body запроса

Имя поля

Формат

Описание

Пример

locations list Точка, относительно которой осуществляется расчёт матрицы достижимости, где lat и lon - широта и долгота точки в градусах (используется 6 знаков после запятой)
"locations":
[
    {
        "lat":55.796932,
        "lon":37.537849
    }
]
contours list

Список параметров для построения изолиний. Каждый параметр определяет метрику (время, либо расстояние) и цвет контура, который можно достичь по выбранной метрике при движении из точки, определённой параметром locations:

  • time  время в минутах (от 1 до 120), за которое можно достичь границы контура. Используется для построения изолиний;
  • distance  расстояние в километрах (может быть дробным)

Максимальное число контуров в одном запросе: 3 (три)

На каждый контур возможно задать только одну метрику: либо время, либо расстояние.

"contours":
[
    {
        "time":15
    },
    {
        "time":30
    }
]

Дополнительные json-поля в HTTP body запроса

Имя поля
Формат
Описание
Пример
speed float

Скорость, км/ч. 

Скорость возможно указать только для пеших (costing=pedestrian) и вело (costing=bicycle) изохрон.

Если поле не указано, используется скорость по умолчанию: 5 км/ч для пешеходов и 20 км/ч для велосипедов.

"speed":20.1
costing string

Тип транспорта для построения маршрута:

  • auto (по умолчанию)  автомобильный;
  • truck (не поддерживается)  грузовой;
  • pedestrian  пешеходный;
  • bicycle  велосипедный.
"costing":"pedestrian"
id string Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа
"id":"Iso_Test"
costing_options dict Список параметров расчёта маршрута. Для различных типов транспорта используются различные опции и ограничения, аналогичные тем, которые используются в сервисе построения маршрута
"costing_options":
{
    "use_border_crossing":0,
    "use_tolls":0
}
units string

Единица измерения расстояния в ответе:

  • kilometers (по умолчанию) — километры;
  • miles  мили.
"units":"miles"
generalize float

Значение в метрах используемое как допустимое отклонение при генерализации кривой контура по алгоритму Рамера-Дугласа-Пекера.

Уменьшение числа точек кривой может приводить к пересечению смежных контуров и к самопересечениям.

"generalize":5
polygons boolean

Определяет структуру GeoJSON: возвращать в ответе полигоны или линии контуров достижимости:

  • false (по умолчанию)  возвращать линии;
  • true  возвращать полигоны.
"polygons":true
show_locations boolean

Возвращать вместе с изолиниями исходные точки (заданные в locations) и точки, заматченные на дорожный граф (от которых по факту начинается построение изолиний).

Возможные значения:

  • false (по умолчанию)  не возвращать исходные точки и точки, «притянутые» к дорожной сети;
  • true  возвращать эти точки.

"show_locations":true

Ответ

Возвращаемый ответ соответствует структуре GeoJSON и содержит:

Имя поля
Формат
Описание
Пример
id string Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа
"id": "Iso_Test"
properties list Описание времени и типа достижимости для линии или полигона контура, где contour — значение времени в минутах из запроса
"properties": {
    "contour": 15,
    "metric":"time"
 }
geometry list

Описание контура и его структуры, содержащее:

  • coordinates  набор координат описывающих ломанную контура достижимости в формате: [lon,lat] - долгота и широта точки в градусах (используется 6 знаков после запятой)
  • type  возможные значения структуры:
    • Polygon  для полигонов достижимости;
    • LineString  для линий, описывающих контур достижимости.
"geometry": {
    "coordinates": [
        [
            37.537922,
            55.798004
        ],
        [
            37.536846,
            55.797928
        ],
        [
            37.536957,
            55.796932
        ],
        [
            37.537849,
            55.796383
        ],
        [
            37.539318,
            55.796932
        ],
        [
            37.537922,
            55.798004  
        ]
    ],
    "type": "LineString"
}

Если по запросу ничего не найдено, ответ будет выглядеть следующим образом:

{"status_code":400,"status":"Bad Request"}

Пример

Запрос

curl -X POST \
  -H "Content-type: application/json" \
  -H "Accept: application/json" \
  -d '{"locations":[{"lat":55.796932,"lon":37.537849}],"costing":"pedestrian","contours":[{"time":15,"color":"ff0000"},{"time":30,"color":"00ff00"}],"id":"Iso_Test","generalize":5}' \
  "https://geo.rustore.ru/api/iso?api_key=<YOUR_API_KEY>"

Ответ

{
    "id": "Iso_Test",
    "type": "FeatureCollection",
    "features": [
        {
            "properties": {
                "contour": 30
            },
            "geometry": {
                "coordinates": [[37.550148, 55.814228], [37.549480, 55.814301], [37.549141, 55.814220], [37.548851, 55.814262], [37.546852, 55.813473], [37.545994, 55.814072], [37.545681, 55.814106], [37.545200, 55.813931], [37.544643, 55.813137], [37.544186, 55.812927], [37.544849, 55.812748], [37.545116, 55.812195], [37.545120, 55.811932], [37.544849, 55.811672], [37.543846, 55.811695], [37.543369, 55.811932], [37.543404, 55.812378], [37.543674, 55.812927], [37.542850, 55.813446], [37.542519, 55.813602], [37.541729, 55.813808], [37.540901, 55.813980], [37.539993, 55.814072], [37.539852, 55.814152], [37.539547, 55.813931], [37.539261, 55.813522], [37.539066, 55.812931], [37.538933, 55.812855], [37.537849, 55.812763], [37.532852, 55.812763], [37.531853, 55.812664], [37.531693, 55.812771], [37.531349, 55.813435], [37.530849, 55.813683], [37.527847, 55.813553], [37.527512, 55.813591], [37.526852, 55.813824], [37.525101, 55.812931], [37.525043, 55.812744], [37.525280, 55.812359], [37.525257, 55.811932], [37.525066, 55.811714], [37.524853, 55.811634], [37.522850, 55.811668], [37.520851, 55.811581], [37.520531, 55.811611], [37.519794, 55.811874], [37.518070, 55.811714], [37.517254, 55.811531], [37.516560, 55.811222], [37.514851, 55.810818], [37.514248, 55.810532], [37.512482, 55.810295], [37.511650, 55.809933], [37.510849, 55.809696], [37.510563, 55.809216], [37.509514, 55.808933], [37.508846, 55.808617], [37.508575, 55.808655], [37.507908, 55.808990], [37.507851, 55.809124], [37.506790, 55.808994], [37.506432, 55.808353], [37.506348, 55.807926], [37.506130, 55.807652], [37.505852, 55.807522], [37.504852, 55.807327], [37.504086, 55.806927], [37.504608, 55.805935], [37.504890, 55.804932], [37.505463, 55.804539], [37.506413, 55.803490], [37.506596, 55.802933], [37.506027, 55.801758], [37.505489, 55.801296], [37.505211, 55.800571], [37.504852, 55.800243], [37.503761, 55.800022], [37.503632, 55.799149], [37.503334, 55.798931], [37.504494, 55.797573], [37.505337, 55.796932], [37.506489, 55.795567], [37.506851, 55.795300], [37.507401, 55.794479], [37.508106, 55.794186], [37.508385, 55.793926], [37.507927, 55.791931], [37.508575, 55.791653], [37.509132, 55.791214], [37.509377, 55.790932], [37.509697, 55.789928], [37.510567, 55.789654], [37.510849, 55.789474], [37.511265, 55.789516], [37.511852, 55.789795], [37.512287, 55.789368], [37.513012, 55.789093], [37.514851, 55.789059], [37.516853, 55.789448], [37.517147, 55.788933], [37.517376, 55.787933], [37.518219, 55.787567], [37.518467, 55.787548], [37.518852, 55.787048], [37.520317, 55.787395], [37.520351, 55.786930], [37.519840, 55.785942], [37.519733, 55.784813], [37.519814, 55.783936], [37.520851, 55.783707], [37.522850, 55.783810], [37.523712, 55.783798], [37.524124, 55.783657], [37.524662, 55.783737], [37.524937, 55.782932], [37.525475, 55.782558], [37.526855, 55.782169], [37.527237, 55.781937], [37.527851, 55.781296], [37.528114, 55.781197], [37.528477, 55.781303], [37.529850, 55.781086], [37.530849, 55.781151], [37.531528, 55.780933], [37.531853, 55.780731], [37.532845, 55.780922], [37.533852, 55.780361], [37.534851, 55.780132], [37.535851, 55.780499], [37.536850, 55.780613], [37.537590, 55.780933], [37.538418, 55.781933], [37.538094, 55.782177], [37.536850, 55.782494], [37.536671, 55.782757], [37.536758, 55.783024], [37.537849, 55.783115], [37.538853, 55.783100], [37.539192, 55.783272], [37.539516, 55.783272], [37.539516, 55.783596], [37.539848, 55.784061], [37.542732, 55.784050], [37.543095, 55.784172], [37.543610, 55.784172], [37.543610, 55.784691], [37.543850, 55.785027], [37.543968, 55.784927], [37.543980, 55.784069], [37.544151, 55.783630], [37.544151, 55.783234], [37.544548, 55.783234], [37.544849, 55.783089], [37.545853, 55.783096], [37.546055, 55.782932], [37.545853, 55.782459], [37.544849, 55.782249], [37.544636, 55.782143], [37.544563, 55.781651], [37.544788, 55.780872], [37.544926, 55.780857], [37.545509, 55.781269], [37.546185, 55.781269], [37.546432, 55.781349], [37.547852, 55.781448], [37.548126, 55.781658], [37.548252, 55.781929], [37.548279, 55.782932], [37.548252, 55.783337], [37.547714, 55.783791], [37.547665, 55.783928], [37.547745, 55.785042], [37.547852, 55.785114], [37.548851, 55.785156], [37.549404, 55.785378], [37.549690, 55.786087], [37.549850, 55.786221], [37.551277, 55.786362], [37.551544, 55.786240], [37.551849, 55.786335], [37.552105, 55.786674], [37.552048, 55.787128], [37.551849, 55.787205], [37.551548, 55.787628], [37.551472, 55.787937], [37.551559, 55.788227], [37.551849, 55.788536], [37.552174, 55.788609], [37.552494, 55.788929], [37.552151, 55.789234], [37.550850, 55.789551], [37.550755, 55.789837], [37.550903, 55.789989], [37.552853, 55.789989], [37.552979, 55.789814], [37.552906, 55.788986], [37.553734, 55.789055], [37.553852, 55.788998], [37.554855, 55.788998], [37.555008, 55.788773], [37.555096, 55.788177], [37.555695, 55.788090], [37.555851, 55.788006], [37.556850, 55.788013], [37.556938, 55.787930], [37.556973, 55.785805], [37.556450, 55.785332], [37.556080, 55.783703], [37.555851, 55.783459], [37.555420, 55.783360], [37.554760, 55.783024], [37.554733, 55.782936], [37.555012, 55.782093], [37.555439, 55.781933], [37.555851, 55.781876], [37.556301, 55.782482], [37.556850, 55.782600], [37.558849, 55.782555], [37.559853, 55.782436], [37.560852, 55.782436], [37.561218, 55.782566], [37.561405, 55.782490], [37.561852, 55.782536], [37.562847, 55.782425], [37.563286, 55.782501], [37.563850, 55.782726], [37.564850, 55.782578], [37.565845, 55.782696], [37.566853, 55.782688], [37.568306, 55.782932], [37.568703, 55.783081], [37.569214, 55.783569], [37.569412, 55.783932], [37.569366, 55.784931], [37.569077, 55.785160], [37.568851, 55.785187], [37.568340, 55.785419], [37.567787, 55.785931], [37.568188, 55.786594], [37.568398, 55.787384], [37.568851, 55.787849], [37.569027, 55.787930], [37.568558, 55.788933], [37.568157, 55.789230], [37.567852, 55.789318], [37.567600, 55.789680], [37.567585, 55.789932], [37.567852, 55.790161], [37.568855, 55.790195], [37.569851, 55.790462], [37.570263, 55.790337], [37.570557, 55.789932], [37.570576, 55.789658], [37.570850, 55.789375], [37.571117, 55.789665], [37.571796, 55.789932], [37.572170, 55.790607], [37.572571, 55.790936], [37.571640, 55.791931], [37.571121, 55.792206], [37.570133, 55.792931], [37.569618, 55.793930], [37.568855, 55.794933], [37.568947, 55.795933], [37.569851, 55.796734], [37.570312, 55.796932], [37.570080, 55.797165], [37.569851, 55.797222], [37.569534, 55.797619], [37.569134, 55.798931], [37.568851, 55.799126], [37.567608, 55.799686], [37.567398, 55.799927], [37.567631, 55.800930], [37.568256, 55.801937], [37.568562, 55.802933], [37.568115, 55.803204], [37.567337, 55.803417], [37.566853, 55.803654], [37.566193, 55.804276], [37.565849, 55.804287], [37.564850, 55.804539], [37.562851, 55.804642], [37.562603, 55.804688], [37.562321, 55.804928], [37.562374, 55.805931], [37.562851, 55.806541], [37.563114, 55.806667], [37.563370, 55.806927], [37.563446, 55.807926], [37.563210, 55.808292], [37.562851, 55.808395], [37.561855, 55.808449], [37.561455, 55.808323], [37.561081, 55.807697], [37.560852, 55.807652], [37.560570, 55.807930], [37.560551, 55.808628], [37.560448, 55.808937], [37.560158, 55.809238], [37.559292, 55.809376], [37.558571, 55.809658], [37.557850, 55.809826], [37.557652, 55.809132], [37.557041, 55.808743], [37.556850, 55.808704], [37.555855, 55.809750], [37.555717, 55.809799], [37.555286, 55.810364], [37.554852, 55.811588], [37.554558, 55.811642], [37.553555, 55.812637], [37.551849, 55.813408], [37.550850, 55.813587], [37.550594, 55.813931], [37.550148, 55.814228]],
                "type": "LineString"
            },
            "type": "Feature"
        },
        {
            "properties": {
                "contour": 15
            },
            "geometry": {
                "coordinates": [[37.538876, 55.805958], [37.537895, 55.805969], [37.536850, 55.806187], [37.534851, 55.806030], [37.533852, 55.806026], [37.530849, 55.805218], [37.530231, 55.804928], [37.530651, 55.803932], [37.530163, 55.803619], [37.530067, 55.802933], [37.529850, 55.802757], [37.528851, 55.802734], [37.528469, 55.802933], [37.528511, 55.803272], [37.529060, 55.803932], [37.528996, 55.804081], [37.527851, 55.804409], [37.526024, 55.804108], [37.524857, 55.803989], [37.523849, 55.803200], [37.522850, 55.803543], [37.521851, 55.803284], [37.521061, 55.802933], [37.521778, 55.800926], [37.521568, 55.799931], [37.521996, 55.798927], [37.522476, 55.798553], [37.522850, 55.798439], [37.523849, 55.798332], [37.524094, 55.798180], [37.524254, 55.797932], [37.524155, 55.797630], [37.523849, 55.797279], [37.523552, 55.797230], [37.522991, 55.796932], [37.523434, 55.795933], [37.523846, 55.795574], [37.524853, 55.795555], [37.525974, 55.795811], [37.526047, 55.795933], [37.527344, 55.796440], [37.527584, 55.796932], [37.527706, 55.797081], [37.527851, 55.797115], [37.528137, 55.796646], [37.528137, 55.796215], [37.528564, 55.796215], [37.528851, 55.796078], [37.529942, 55.796028], [37.530178, 55.795601], [37.530178, 55.795261], [37.530521, 55.795261], [37.530849, 55.795101], [37.531178, 55.795261], [37.531521, 55.795261], [37.531521, 55.795601], [37.531769, 55.796017], [37.533852, 55.796032], [37.534050, 55.796127], [37.534657, 55.796127], [37.534657, 55.796738], [37.534790, 55.796989], [37.535896, 55.796978], [37.535950, 55.794933], [37.535625, 55.794704], [37.535076, 55.794704], [37.534946, 55.792835], [37.534645, 55.792721], [37.534058, 55.792721], [37.533852, 55.792637], [37.531853, 55.792431], [37.531441, 55.792336], [37.530727, 55.791931], [37.531166, 55.790932], [37.531544, 55.790623], [37.532330, 55.790409], [37.533852, 55.790245], [37.534039, 55.790123], [37.534431, 55.789516], [37.535152, 55.789234], [37.535465, 55.788933], [37.535500, 55.788578], [37.535851, 55.788170], [37.536205, 55.788574], [37.536320, 55.788933], [37.536610, 55.789173], [37.536850, 55.789261], [37.538105, 55.789185], [37.538727, 55.788811], [37.539024, 55.788757], [37.539921, 55.788868], [37.540951, 55.788834], [37.541851, 55.789043], [37.542439, 55.789349], [37.542850, 55.789448], [37.543850, 55.789272], [37.544254, 55.789337], [37.544502, 55.789280], [37.544849, 55.789421], [37.546322, 55.789463], [37.546852, 55.789597], [37.547276, 55.789356], [37.547852, 55.789242], [37.548000, 55.789787], [37.548676, 55.789757], [37.549397, 55.789932], [37.549641, 55.790142], [37.549850, 55.790207], [37.551849, 55.790260], [37.553345, 55.790436], [37.553852, 55.790600], [37.554203, 55.791931], [37.554337, 55.792934], [37.553852, 55.793671], [37.553501, 55.793930], [37.553276, 55.794353], [37.553158, 55.794933], [37.552265, 55.795349], [37.551750, 55.795837], [37.551640, 55.796932], [37.551228, 55.797928], [37.551395, 55.798931], [37.551365, 55.799931], [37.552040, 55.800930], [37.552097, 55.801933], [37.551849, 55.802193], [37.551334, 55.802418], [37.548805, 55.802883], [37.548664, 55.803932], [37.547852, 55.804455], [37.547508, 55.804588], [37.546852, 55.804703], [37.545853, 55.805096], [37.541851, 55.805519], [37.540852, 55.805511], [37.539623, 55.805702], [37.538876, 55.805958]],
                "type": "LineString"
            },
            "type": "Feature"
        }
    ]
}
Was this information helpful?