Создание полигонов времени в пути с использованием инструментов с открытым исходным кодом?

55

Кто-нибудь использует инструменты и / или данные с открытым исходным кодом для генерации полигонов времени в пути, исходящих из заданного местоположения? Например, я использовал продукты ESRI, такие как Network Analyst и Business Analyst, для создания границ полигонов, которые представляют максимальное расстояние, которое можно пройти вдоль дорожной сети от заданной точки в течение определенного пользователем периода времени (скажем, 5, 10 и / или 15 минут). Существуют ли аналогичные альтернативы с открытым исходным кодом или через Интернет?

Я видел этот пост, но на самом деле он не дает альтернативных вариантов: можете ли вы создать полигон региона путешествий с помощью Google Maps API?

Мне было особенно любопытно узнать, использует ли кто-либо (или может) использовать OpenStreetMap для анализа времени вождения?

Кроме того, есть ли реализация утилит pgRouting, которые можно использовать для генерации полигонов? http://pgrouting.postlbs.org/

RyanDalton
источник
Интересно увидеть ответ на этот. Насколько мне известно, ESRI опережает серверные продукты с открытым исходным кодом, главным образом потому, что предоставляет геообработку в простой для обслуживания / использования модели.
Саймон
Любое обновление по этому вопросу? Я действительно заинтересован в том, чтобы возиться с создателем DT с открытым исходным кодом для создания сценариев карт.
Furlong
Я пока точно не могу дать ответ, так как мне пришлось приостановить работу над этим проектом. Поскольку я не "GRASS", я, вероятно, не собираюсь идти по этому пути, хотя кажется, что это очень жизнеспособное решение. Однако сейчас я склоняюсь к попытке использовать pgRouting, в который предположительно встроены функции Alpha Shapes.
RyanDalton

Ответы:

52

GRASS v.net.iso даст вам такой результат:

введите описание изображения здесь

Возможно, вы не захотите запускать алгоритм выпуклой оболочки на этом выходе. Представьте себе голубые дороги: выпуклый корпус вокруг них будет содержать множество частей, которые недоступны во время, обозначенное «синим».

Вместо этого вы можете захотеть взглянуть на альфа-формы (связанный вопрос: что такое определение, алгоритмы и практические решения для вогнутой оболочки? )

эскиз в форме альфы

Вы можете создавать изохроны времени в пути, используя pgRouting и QGIS ( как описано здесь ). В этом случае я не использовал OSM, но, конечно, вы можете построить свою маршрутизируемую сеть на основе OSM (см. Инструмент osm2pgrouting ).

введите описание изображения здесь

( полное разрешение )

Для чистого решения PostGIS вы можете использовать функцию альфа-формы pgRouting . Вот сравнение альфа-форм, реализованных в pgRouting, и подхода, который я представил в предыдущем обновлении:

введите описание изображения здесь

Цветные области представляют результаты функции альфа-формы, черные линии - результаты подхода интерполяции, описанного ранее. Области охвата менее детализированы с использованием альфа-форм pgRouting. Кроме того, кажется, нет никакого способа изменить значение альфа для создания более подробных представлений.

андерграунд
источник
2
+1 на альфа-фигуры! Узнавайте что-то новое каждый день! Я знал, что выпуклый корпус не совсем то решение, но не знал об этом!
Даррен Коуп
1
Большое спасибо за размещение описания этого в вашем блоге. Я определенно планирую взглянуть на это в ближайшее время и посмотреть, смогу ли я повторить это с моими данными. Это выглядит фантастически, хотя!
RyanDalton
10

GRASS v.net.iso можно использовать для создания «сети» времени в пути, которую вы можете передать в команду «выпуклый корпус», чтобы получить многоугольник. Возможно, не идеально, но будет работать!

Даррен Коуп
источник
1
Хаха, просто бей меня!
om_henners
+1 для v.net.iso, но не уверен насчет выпуклой части корпуса - смотрите мой ответ
Подземье
9

Ну, потенциально вы можете использовать v.net.iso из GRASS GIS. Однако он не создает полигоны (AFAIK), а разделяет линии по классам затрат из источника.

Что касается расчета времени накопления из OSM, вы можете импортировать данные в GRASS с помощью v.in.osm и использовать v.net.iso для расчета зон затрат. Если вам нужно время в пути и у вас нет ограничений скорости на дороге, потенциально вы можете рассчитать ограничение скорости на основе некоторой функции класса дороги.

om_henners
источник
7

Вы можете использовать GraphHopper для этой задачи, которая также поддерживает различные режимы, такие как ходьба или езда на велосипеде и использует OpenStreetMap по умолчанию. Вам понадобится некоторое Java-кодирование, которое исследует дорожную сеть с начальной точки, аналогично тому, как работают алгоритмы Дейкстры, но тогда вы можете получить что-то вроде следующего даже в реальном времени (<0,5 с):

введите описание изображения здесь

Код будет собирать точки, которые вы должны преобразовать в многоугольник, например, с помощью инструментов JTS . Скорость во многом зависит от этого последнего шага. Без этого это было бы возможно под 0.5s даже для больших расстояний.

Другой способ был бы с OpenTripPlanner .

Karussell
источник
6

osrm-isochrone - это небольшая библиотека node.js для генерации времени работы.

Морган Херлокер
источник
5

Возможно, вы захотите воспользоваться открытым API-интерфейсом Route360 ° JavaScript , который работает с картами Leaflet и Google. Он возвращает полигоны времени прохождения для следующих режимов движения: прогулка, велосипед, машина, транзит.

Время прохождения полигонов - Нью-Йорк

Это бесплатно и с открытым исходным кодом и освещение довольно хорошо. Вы можете найти множество различных учебных пособий о том, как использовать его на веб-сайте.

Yoya01
источник
1
Клиентская сторона с открытым исходным кодом, но серверная сторона не IMO.
Karussell
2

Хотя вы не ответили прямо на ваш вопрос, вы должны взглянуть на API Mapnificent .

Mapnificent предоставляет динамические карты времени в пути общественного транспорта для многих городов США и некоторых стран мира. Вы можете использовать API Mapnificent для дополнения своего приложения Google Maps наложениями на общественный транспорт.

Взгляните на Лондон здесь . альтернативный текст

Саймон
источник
mapnificent с открытым исходным кодом?
Карусселл
2

Я также наткнулся на расширение сети gvSIG , но документация по конфигурации, которую я нашел до сих пор, довольно скудна. Я возлагаю на это большие надежды, мне просто нужно выяснить детали расчета стоимости.

Я использовал данные TIGER переписи населения США для дорожной сети и фактически сгенерировал несколько полигонов, но просто не мог заставить единицы стоимости действительно иметь смысл. Если кто-нибудь успешно внедрил этот инструмент, я хотел бы услышать об этом.

Я также нашел Quantum Navigator для QGIS, но я не нашел никаких последних обновлений.

RyanDalton
источник
2

Результат с вогнутым корпусом великолепен, и я черпал вдохновение из приведенных выше изображений. Но я заметил, что результаты могут включать в себя некоторые области, которые недоступны по дороге (например, река). Нет сомнений в том, что это не проблема с точки зрения поиска соответствующих характеристик (центроидов населения, количества домов) по расстоянию или времени от источника. Но это также работает только на обоих концах каждой ссылки. Опять же, не проблема в подавляющем большинстве случаев (поскольку у самых длинных дорожных связей есть контроль доступа - обычно вы не можете с них выйти, пока не доберетесь до следующего перекрестка / перекрестка).

Однако, несмотря на это, я работал над другим подходом, основанным на ССЫЛКАХ, возвращаемых PgRouting / (или необработанным алгоритмом "Dijkstra"), упорядоченных по времени от исходного узла. Это относительно просто и классифицирует ссылки по временному диапазону, а также разбивает ссылки, которые пересекают временные границы. Затем ссылки с той же категоризацией (например, 0-2 минуты, 2-4 минуты) буферизуются на 250 метров.

Джон Стидман
источник
1

В этом году на WhereCampPDX несколько представителей OpenStreetMap заявили, что использование данных OSM для маршрутизации довольно распространено в Европе. Тем не менее, это реже в США, потому что карта обычно не достаточно хороша. Вы можете проверить сервис маршрутизации на основе OSM по адресу:

http://openrouteservice.org/

jvangeld
источник
1
И никакая маршрутизация не то же самое, что время в пути, но это связано.
Jvangeld
1
Это своего рода маршрут, но «один ко всем», ограниченный временем или расстоянием
Karussell
1
Этот сервис хорошо работает для меня. У меня не было возможности проверить точность, но это позволило мне найти, например, радиус в 1 час вокруг определенной области. Очень рука , если один должен переехать в неизвестный район для работы и т.д.
Роман
1
Openrouteservices.org имеет возможность экспортировать наши данные в geoJSON. После этого мы можем преобразовать его и отобразить нашу изохронную карту, например, в Google Earth, Google Maps и т. Д. Mkrgeo-blog.com/…
Мариуш Крукар
Потрясающие. Похоже, что Openrouteservice работает в Штатах в настоящее время.
jvangeld