Кто-нибудь использует инструменты и / или данные с открытым исходным кодом для генерации полигонов времени в пути, исходящих из заданного местоположения? Например, я использовал продукты ESRI, такие как Network Analyst и Business Analyst, для создания границ полигонов, которые представляют максимальное расстояние, которое можно пройти вдоль дорожной сети от заданной точки в течение определенного пользователем периода времени (скажем, 5, 10 и / или 15 минут). Существуют ли аналогичные альтернативы с открытым исходным кодом или через Интернет?
Я видел этот пост, но на самом деле он не дает альтернативных вариантов: можете ли вы создать полигон региона путешествий с помощью Google Maps API?
Мне было особенно любопытно узнать, использует ли кто-либо (или может) использовать OpenStreetMap для анализа времени вождения?
Кроме того, есть ли реализация утилит pgRouting, которые можно использовать для генерации полигонов? http://pgrouting.postlbs.org/
источник
Ответы:
GRASS v.net.iso даст вам такой результат:
Возможно, вы не захотите запускать алгоритм выпуклой оболочки на этом выходе. Представьте себе голубые дороги: выпуклый корпус вокруг них будет содержать множество частей, которые недоступны во время, обозначенное «синим».
Вместо этого вы можете захотеть взглянуть на альфа-формы (связанный вопрос: что такое определение, алгоритмы и практические решения для вогнутой оболочки? )
Вы можете создавать изохроны времени в пути, используя pgRouting и QGIS ( как описано здесь ). В этом случае я не использовал OSM, но, конечно, вы можете построить свою маршрутизируемую сеть на основе OSM (см. Инструмент osm2pgrouting ).
( полное разрешение )
Для чистого решения PostGIS вы можете использовать функцию альфа-формы pgRouting . Вот сравнение альфа-форм, реализованных в pgRouting, и подхода, который я представил в предыдущем обновлении:
Цветные области представляют результаты функции альфа-формы, черные линии - результаты подхода интерполяции, описанного ранее. Области охвата менее детализированы с использованием альфа-форм pgRouting. Кроме того, кажется, нет никакого способа изменить значение альфа для создания более подробных представлений.
источник
GRASS v.net.iso можно использовать для создания «сети» времени в пути, которую вы можете передать в команду «выпуклый корпус», чтобы получить многоугольник. Возможно, не идеально, но будет работать!
источник
Ну, потенциально вы можете использовать v.net.iso из GRASS GIS. Однако он не создает полигоны (AFAIK), а разделяет линии по классам затрат из источника.
Что касается расчета времени накопления из OSM, вы можете импортировать данные в GRASS с помощью v.in.osm и использовать v.net.iso для расчета зон затрат. Если вам нужно время в пути и у вас нет ограничений скорости на дороге, потенциально вы можете рассчитать ограничение скорости на основе некоторой функции класса дороги.
источник
Вы можете использовать GraphHopper для этой задачи, которая также поддерживает различные режимы, такие как ходьба или езда на велосипеде и использует OpenStreetMap по умолчанию. Вам понадобится некоторое Java-кодирование, которое исследует дорожную сеть с начальной точки, аналогично тому, как работают алгоритмы Дейкстры, но тогда вы можете получить что-то вроде следующего даже в реальном времени (<0,5 с):
Код будет собирать точки, которые вы должны преобразовать в многоугольник, например, с помощью инструментов JTS . Скорость во многом зависит от этого последнего шага. Без этого это было бы возможно под 0.5s даже для больших расстояний.
Другой способ был бы с OpenTripPlanner .
источник
osrm-isochrone - это небольшая библиотека node.js для генерации времени работы.
источник
Возможно, вы захотите воспользоваться открытым API-интерфейсом Route360 ° JavaScript , который работает с картами Leaflet и Google. Он возвращает полигоны времени прохождения для следующих режимов движения: прогулка, велосипед, машина, транзит.
Это бесплатно и с открытым исходным кодом и освещение довольно хорошо. Вы можете найти множество различных учебных пособий о том, как использовать его на веб-сайте.
источник
Хотя вы не ответили прямо на ваш вопрос, вы должны взглянуть на API Mapnificent .
Взгляните на Лондон здесь .
источник
Я также наткнулся на расширение сети gvSIG , но документация по конфигурации, которую я нашел до сих пор, довольно скудна. Я возлагаю на это большие надежды, мне просто нужно выяснить детали расчета стоимости.
Я использовал данные TIGER переписи населения США для дорожной сети и фактически сгенерировал несколько полигонов, но просто не мог заставить единицы стоимости действительно иметь смысл. Если кто-нибудь успешно внедрил этот инструмент, я хотел бы услышать об этом.
Я также нашел Quantum Navigator для QGIS, но я не нашел никаких последних обновлений.
источник
Результат с вогнутым корпусом великолепен, и я черпал вдохновение из приведенных выше изображений. Но я заметил, что результаты могут включать в себя некоторые области, которые недоступны по дороге (например, река). Нет сомнений в том, что это не проблема с точки зрения поиска соответствующих характеристик (центроидов населения, количества домов) по расстоянию или времени от источника. Но это также работает только на обоих концах каждой ссылки. Опять же, не проблема в подавляющем большинстве случаев (поскольку у самых длинных дорожных связей есть контроль доступа - обычно вы не можете с них выйти, пока не доберетесь до следующего перекрестка / перекрестка).
Однако, несмотря на это, я работал над другим подходом, основанным на ССЫЛКАХ, возвращаемых PgRouting / (или необработанным алгоритмом "Dijkstra"), упорядоченных по времени от исходного узла. Это относительно просто и классифицирует ссылки по временному диапазону, а также разбивает ссылки, которые пересекают временные границы. Затем ссылки с той же категоризацией (например, 0-2 минуты, 2-4 минуты) буферизуются на 250 метров.
источник
В этом году на WhereCampPDX несколько представителей OpenStreetMap заявили, что использование данных OSM для маршрутизации довольно распространено в Европе. Тем не менее, это реже в США, потому что карта обычно не достаточно хороша. Вы можете проверить сервис маршрутизации на основе OSM по адресу:
http://openrouteservice.org/
источник