Основные понятия

Чтобы сгенерировать изохрону, укажите в API пункт отправления, способ передвижения (например, на автомобиле, двухколесном транспортном средстве, велосипеде или пешком) и ограничение по времени. Вы также можете настроить параметры маршрутизации и внешний вид результирующего многоугольника.

Способы передвижения

Используйте обязательный параметр travelMode (travel_mode), чтобы указать способ передвижения:

  • DRIVE – рассчитывает доступность для легкового автомобиля на дорогах, пригодных для движения, с учетом установленных ограничений скорости, иерархии дорог, штрафов за повороты и (необязательно) текущей загруженности дорог.
  • TWO_WHEELER – рассчитывает доступность для двухколесного моторизованного транспортного средства (например, мотоцикла или скутера), используя правила доступа к дорогам для конкретного режима и более низкие смоделированные скорости, чем DRIVE на скоростных дорогах. В результате изохрона TWO_WHEELER обычно охватывает область, которая больше, чем BICYCLE, но меньше, чем DRIVE, вдоль скоростных автомагистралей.
  • BICYCLE. Рассчитывает доступность для велосипедиста на улицах, велодорожках и общих дорожках, доступных для велосипедов, со скоростью, скорректированной с учетом типа дороги и уклона, за исключением автомагистралей и автомагистралей с контролируемым доступом.
  • WALK – рассчитывает доступность для пешехода, идущего по тротуарам, пешеходным дорожкам, тропам и улицам, доступным для пешеходов, со скоростью ходьбы, скорректированной с учетом уклона. При построении пешеходных маршрутов не учитываются ограничения на одностороннее движение транспортных средств.

Временной горизонт

Основное ограничение, которое вы задаете для сервиса, – это travelDuration (travel_duration). Оно определяет временной горизонт для расчета.

  • Минимальная и максимальная продолжительность. Продолжительность должна быть не менее "1s" (1 секунда). Если указать ноль ("0s"), отрицательное значение или значение меньше одной секунды (например, "0.5s"), возвращается ошибка 400 INVALID_ARGUMENT. API поддерживает максимальное время в пути 3600 секунд (1 час) для режимов DRIVE и TWO_WHEELER и 7200 секунд (2 часа) для режимов WALK и BICYCLE.
  • Минимальный размер многоугольника. Поскольку API преобразует достигнутые сегменты дорог в ячейки пространственной сетки, при очень коротких продолжительностях возвращается небольшой многоугольник, охватывающий ячейки сетки вокруг привязанной точки отправления.
  • Производительность. Время расчета зависит от запрашиваемой продолжительности и выбранного способа передвижения. Изохрона для часовой поездки на автомобиле охватывает значительно большую географическую область и дорожную сеть, чем изохрона для часовой пешей прогулки, что приводит к более высокой задержке при запросе на вождение.
  • Форматирование. Поскольку API использует google.protobuf.Duration, продолжительность должна быть отформатирована как строка, заканчивающаяся на "s" (например, "3600s"), а не как целое число.

Исходные точки и привязка к дорогам

Начальную точку изохроны можно указать двумя способами:

  • Координаты (location). Пара значений широты и долготы. Укажите оба значения: latitude (в [-90, 90]) и longitude (в [-180, 180]). Если вы не укажете одно из них, API будет считать его равным 0.0, что поместит точку на экватор или нулевой меридиан. Если вы не укажете ни один из них ({}) или отправите (0, 0), API вернет ошибку 400 INVALID_ARGUMENT.
  • Идентификаторы мест (place) – уникальные идентификаторы мест на Google Картах. Когда вы указываете идентификатор места, сервис определяет его центроид и привязывает эту точку к ближайшей дороге. Используйте формат названия ресурса, начинающийся с places/ (например, places/ChIJIQBpAG2ahYAR_6128GcTUEo). Также принимается идентификатор места без префикса places/. Подробнее об идентификаторах мест…

Независимо от метода ввода API не рассчитывает время в пути от точной физической точки, если она находится не на дороге, например в парке или здании. Чтобы справиться с этой ситуацией, сервис использует привязку к дороге. Привязка к дороге имеет следующие особенности:

  • Умная привязка. Сервис пытается привязать начальную точку к ближайшему сегменту дороги, по которому можно проехать.
  • Учет режима. Логика привязки учитывает travel_mode. Если вы запрашиваете DRIVE или TWO_WHEELER, API игнорирует пешеходные дорожки и ищет ближайшую улицу, по которой можно проехать. Если вы запрашиваете WALK, API отдает приоритет пешеходным дорожкам и тротуарам.
  • Ошибки. Если API не может найти подходящий сегмент дороги в пределах максимального расстояния привязки от начальной точки (около 200 метров или меньше для WALK и BICYCLE), API возвращает ошибку 404 NOT_FOUND. Крупные географические объекты (например, парки, кампусы или смотровые площадки) могут иметь центроид идентификатора места, находящийся дальше расстояния привязки от ближайшей дороги, пригодной для использования в режиме путешествия. В таких случаях вместо этого передайте явные координаты location въезда на дорогу.

Направление движения (въезд или выезд)

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

  • FROM (исходящий). Рассчитывает область, которой можно достичь из начальной точки за указанное время. Это подходит для таких случаев, как зоны доставки или зоны обслуживания.
  • TO (входящий). Рассчитывает область, из которой можно добраться до начальной точки за указанное время. Это подходит для определения зон охвата, например, откуда сотрудники могут добираться до центрального офиса.

Осведомленность о дорожном движении

Управлять тем, как данные о трафике влияют на сгенерированный многоугольник, можно с помощью параметра routingPreference (routing_preference):

  • TRAFFIC_UNAWARE (по умолчанию). Для создания многоугольника изохроны используются ограничения скорости при свободном движении и иерархия дорог. В результате получается детерминированная форма, которая не зависит от времени суток. Этот параметр идеально подходит для общего анализа или планирования базовых сценариев.
  • TRAFFIC_AWARE. Изохроны рассчитываются с учетом загруженности дорог в момент обработки запроса. В версии 1 нельзя задать временные метки отправления или прибытия в прошлом или будущем. В результате область, до которой можно добраться, уменьшается в часы пик и увеличивается в остальное время. При отсутствии пробок или в непиковые часы TRAFFIC_AWARE и TRAFFIC_UNAWARE могут возвращать почти идентичные многоугольники. Примечание. Прокладка маршрутов с учетом загруженности дорог поддерживается, только если для параметра travelMode задано значение DRIVE или TWO_WHEELER.

Сглаживание и точность

Вы можете настроить внешний вид и точность выходных многоугольников с помощью параметров polygonFidelity (polygon_fidelity) и enableSmoothing (enable_smoothing). Эти параметры независимы, но вместе они определяют окончательную форму.

  • polygonFidelity – управляет разрешением ячеек пространственной сетки, используемым для аппроксимации достижимой границы:

    • LOW – используются самые большие ячейки сетки (несколько сотен метров в поперечнике). Лучше всего подходит для покрытия больших территорий с меньшим количеством вершин и без внутренних зазоров. В результате получается обобщенная форма, которая может переоценивать доступную область вдоль узких дорожных коридоров.
    • MEDIUM – сбалансированная точность и количество вершин.
    • HIGH – используются самые маленькие ячейки сетки (примерно 100–150 метров в поперечнике). Результаты точнее соответствуют дорожной сети, но могут появляться внутренние отверстия, если дорожная сеть разреженная.
    • POLYGON_FIDELITY_UNSPECIFIED. Если не указано, сервис выбирает разрешение автоматически на основе способа передвижения и длительности, используя более мелкие ячейки для коротких поездок и для WALK и более крупные ячейки для длительных поездок. Чтобы сравнить изохроны для разных значений длительности или способов передвижения, задайте polygonFidelity явным образом.
      Высокая, средняя и низкая точность полигонов
      Высокая, средняя и низкая точность многоугольников
  • enableSmoothing – определяет, будут ли сглажены ступенчатые края ячеек сетки, заданные точностью.

    • false (необработанные данные) – вариант по умолчанию. Возвращает границу, выровненную по сетке. Края выглядят ступенчатыми вдоль ячеек сетки. Лучше всего подходит для точного анализа, например для строгих проверок нахождения точки в многоугольнике.
    • true (Сглаживание). Острые углы на карте сглаживаются, а площадь каждого кольца остается примерно такой же. Граница больше не следует за ячейками сетки.
      Изохрона со сглаживанием и без него
      Изохрона со сглаживанием и без