Как рассчитать изохрону для входящей поездки на работу (в пункт назначения) и изохрону для исходящей поездки с работы (из пункта отправления)?
В API версии 1 поддерживаются расчеты как для входящих, так и для исходящих маршрутов с использованием параметра travelDirection (travel_direction):
FROM(исходящий) – рассчитывается область, которой можно достичьfromначальной точки за указанное время. Это подходит для таких случаев, как зоны доставки или зоны обслуживания.TO(Входящие). Рассчитывает область, из которой можно добратьсяtoначальной точки за указанное время. Это подходит для таких приложений, как функции поездок на работу или определение зон обслуживания вокруг центрального офиса или транспортного узла.
Чем отличаются четыре способа передвижения (DRIVE, TWO_WHEELER, BICYCLE и WALK)?
Для каждого режима используются свои правила доступа к дорожной сети, стоимость поворотов и модель скорости:
DRIVE– прокладывает маршруты по дорогам, по которым можно ездить, с учетом разрешенной скорости, скорости свободного движения или скорости движения в реальном времени (TRAFFIC_AWARE). Максимальная продолжительность маршрута – 3600 секунд (60 минут).TWO_WHEELER– прокладывает маршруты по дорогам, доступным для двухколесных транспортных средств с двигателем, с более низкими смоделированными скоростями, чемDRIVEна скоростных дорогах, и дополнительной маршрутизациейTRAFFIC_AWARE, до 3600 секунд (60 минут). В результате изохронаTWO_WHEELERбольше, чемBICYCLE, но меньше, чемDRIVEвдоль скоростных шоссе.BICYCLE– маршрут проходит по улицам, велодорожкам и тропинкам, доступным для велосипедов. Скорость корректируется с учетом типа дороги и уклона (исключая автомагистрали и скоростные шоссе). Максимальное время в пути – 7200 секунд (120 минут).WALK– пешеходные тротуары, тропы и улицы со скоростью ходьбы, скорректированной с учетом уклона (без учета ограничений на одностороннее движение транспортных средств), до 7200 секунд (120 минут).
Учитывает ли Isochrones API паромы и водные переправы?
Нет. Isochrones API учитывает только дороги, мосты, туннели и тропы. Паромные маршруты и водные переправы исключаются для всех способов передвижения. Острова и полуострова, соединенные с материком только паромной переправой, не будут включены в изохрону, сгенерированную для материка.
Иногда возвращаемый многоугольник выглядит блочным или имеет неровные ступенчатые края, особенно при более длительных периодах времени. Почему меняется уровень детализации?
Isochrones API динамически корректирует разрешение сетки пространственных вычислений на основе запрошенных значений travel_duration и travel_mode:
- Короткие периоды. Используйте сетку с высоким разрешением, поскольку общая площадь невелика, что позволяет получить подробную границу.
- Для более длительных периодов используется сетка с более низким разрешением, чтобы эффективно охватить обширную географическую область без серьезных задержек.
Если вам нужен определенный уровень детализации независимо от продолжительности, вы можете задать для необязательного параметра polygon_fidelity значение HIGH, MEDIUM или LOW.
Почему при запросе изохроны для координат внутри парка, озера или крупного промышленного комплекса иногда возвращается ошибка "Не найдено"?
Isochrones API рассчитывает время в пути по дорогам и тропам. Если указанные вами координаты пункта отправления не находятся на распознанной дороге, API должен "привязать" точку к ближайшему совместимому сегменту, прежде чем начинать расчет.
Для каждого способа передвижения максимальное расстояние привязки составляет около 200 метров или меньше.
WALK и BICYCLE используют более короткие расстояния, чем DRIVE и TWO_WHEELER, а DRIVE и TWO_WHEELER игнорируют пешеходные дорожки.
Если исходная координата находится дальше от допустимого сегмента дороги, совместимого с режимом, чем это расстояние, привязка не выполняется и API возвращает ошибку NOT_FOUND. Чтобы устранить эту проблему, убедитесь, что координаты находятся рядом с улицей или дорогой общего пользования.
Почему при запросе маршрута с учетом трафика для пешеходов или велосипедистов возникает ошибка?
Информация о загруженности дорог (TRAFFIC_AWARE) поддерживается для способов передвижения DRIVE и TWO_WHEELER. Если вы попытаетесь запросить изохрону для WALK или BICYCLE, когда для routingPreference задано значение TRAFFIC_AWARE, API вернет ошибку 400 INVALID_ARGUMENT.
Когда я отрисовываю ответ GeoJSON на карте, фигура отображается в неправильном месте, искажается или не отрисовывается. В чем причина?
Почти всегда это связано с несоответствием порядка координат.
В соответствии со стандартом GeoJSON (RFC 7946) Isochrones API возвращает координаты в порядке [longitude, latitude]. Однако многие SDK для работы с картами и пользовательские геометрические объекты ожидают координаты в порядке [latitude, longitude].
Если карта отображается неправильно, проверьте, как SDK карты обрабатывает GeoJSON:
- Google Maps JavaScript API. Если вы используете слой данных (
map.data.addGeoJson()), этот порядок обрабатывается автоматически и никаких действий не требуется. - Пользовательские объекты или другие SDK. Если вы вручную преобразуете ответ в объекты
LatLng, то перед отрисовкой вам нужно перебрать координаты в полезной нагрузке GeoJSON и транспонировать значения[lng, lat]в пары[lat, lng].
Почему внутри многоугольника изохроны есть пустые "дыры" и можно ли получить сплошную фигуру?
Пустые области обозначают места, до которых нельзя добраться по дорогам за указанное время. Это часто происходит в регионах с большими лесами, водоемами, аэропортами или частными владениями, где не могут передвигаться транспортные средства или пешеходы.
Внешний API версии 1 не предоставляет параметр для автоматического удаления отверстий. Если для вашего приложения требуется сплошная граница, например для проверки вхождения точки в многоугольник, вы можете:
- Задайте для параметра
polygon_fidelityзначениеMEDIUMилиLOW, чтобы алгоритм обобщал и объединял эти внутренние пробелы. - Используйте клиентскую библиотеку ГИС (например, Turf.js), чтобы проанализировать GeoJSON и извлечь только первое кольцо координат (внешнюю оболочку), отбросив все последующие внутренние кольца (отверстия).
Нужно ли включать параметр enable_smoothing для пространственного анализа на сервере?
Нет. Параметр enable_smoothing предназначен исключительно для визуального оформления.
Она сглаживает острые углы расчетной сетки, чтобы форма выглядела на карте естественно.
Сглаживание не рекомендуется для точного пространственного анализа, поскольку оно изменяет вершины и немного сдвигает границы. Для внутренних вычислений, запросов к базе данных или тестов на принадлежность точки многоугольнику оставьте для enable_smoothing значение false, чтобы использовать математически точную рассчитанную границу.