Чтобы сгенерировать изохрону, укажите в 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(Сглаживание). Острые углы на карте сглаживаются, а площадь каждого кольца остается примерно такой же. Граница больше не следует за ячейками сетки.
Изохрона со сглаживанием и без