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