Czy ktoś używa narzędzi i / lub danych typu open source do generowania wielokątów czasu jazdy, które promieniują z danej lokalizacji? Na przykład używałem produktów ESRI, takich jak Network Analyst i Business Analyst, do generowania granic wielokątów, które reprezentują maksymalną odległość, jaką można pokonać siecią drogową z danego punktu w określonym przez użytkownika okresie czasu (powiedzmy 5, 10 i / lub 15 minut). Czy istnieją podobne alternatywy typu open source lub internetowe?
Widziałem ten post, ale tak naprawdę nie daje alternatywnych opcji: czy możesz zrobić wielokąt regionu podróży za pomocą Google Maps API?
Byłem szczególnie ciekawy, czy ktoś jest (lub może) używać OpenStreetMap do analizy czasu jazdy?
Czy jest też jakaś implementacja narzędzi pgRouting, które można by wykorzystać do generowania wielokątów? http://pgrouting.postlbs.org/
źródło
Odpowiedzi:
GRASS v.net.iso daje taki wynik:
Być może nie chcesz uruchamiać algorytmu wypukłego kadłuba na tym wyjściu. Wyobraź sobie niebieskie drogi: wypukły kadłub wokół nich zawierałby wiele części, do których nie można dotrzeć w czasie oznaczonym przez „niebieski”.
Zamiast tego warto przyjrzeć się kształtom alfa (pokrewne pytanie: Czym są definicja, algorytmy i praktyczne rozwiązania dla kadłuba wklęsłego? )
Możesz tworzyć izochrony czasu jazdy za pomocą pgRouting i QGIS ( jak opisano tutaj ). W tym przypadku nie użyłem OSM, ale oczywiście możesz zbudować swoją sieć routingową w oparciu o OSM (zobacz narzędzie do osm2pgrouting ).
( pełna rozdzielczość )
W przypadku czystego rozwiązania PostGIS można użyć funkcji kształtu alfa pgRouting . Oto porównanie kształtów alfa zaimplementowanych w pgRouting i podejście, które przedstawiłem w poprzedniej aktualizacji:
Kolorowe obszary przedstawiają wyniki funkcji kształtu alfa, czarne linie to wyniki opisanego wcześniej podejścia interpolacyjnego. Obszary zlewni są mniej szczegółowe przy użyciu kształtów alfa pgRouting. Ponadto wydaje się, że nie ma sposobu na różnicowanie wartości alfa w celu stworzenia bardziej szczegółowych reprezentacji.
źródło
GRASS „v.net.iso można wykorzystać do utworzenia„ sieci ”czasu napędu, którą można przekazać do polecenia„ wypukłego kadłuba ”w celu uzyskania wielokąta. Być może nie jest idealny, ale zadziała!
źródło
Cóż, potencjalnie możesz użyć v.net.iso z GRASS GIS. Jednak nie tworzy wielokątów (AFAIK), ale dzieli linie według klas kosztów ze źródła.
Jeśli chodzi o obliczanie czasów jazdy z OSM, możesz zaimportować dane do GRASS za pomocą v.in.osm i użyć v.net.iso do obliczenia stref kosztów. Jeśli chciałeś czasu podróży i potencjalnie nie masz ograniczeń prędkości, możesz obliczyć ograniczenie prędkości na podstawie funkcji klasy drogi.
źródło
Do tego zadania można użyć GraphHopper, który obsługuje również inny tryb, np. Spacer lub jazdę na rowerze i domyślnie korzysta z OpenStreetMap. Będziesz potrzebował trochę kodu Java, który bada sieć drogową od punktu początkowego podobnego do działania algorytmów Dijkstra, ale wtedy możesz uzyskać coś takiego, nawet w czasie rzeczywistym (<0,5s):
Kod zbierze punkty, które musisz przekonwertować na wielokąt za pomocą np . Narzędzi JTS . Prędkość zależy w dużej mierze od tego ostatniego kroku. Bez tego byłoby to możliwe poniżej 0,5 sekundy nawet na duże odległości.
Innym sposobem może być OpenTripPlanner .
źródło
osrm-isochrone jest małą biblioteką node.js do generowania napędów.
źródło
Warto sprawdzić otwarty interfejs API JavaScript Route360 ° , który działa zarówno z mapami Leaflet, jak i Google. Zwraca wielokąty czasu podróży dla następujących trybów podróży: pieszo, rowerem, samochodem, tranzytem.
Jest darmowy i open source, a zasięg jest całkiem dobry. Na stronie internetowej można znaleźć wiele różnych samouczków dotyczących korzystania z niej.
źródło
Chociaż nie odpowiadasz bezpośrednio na twoje pytanie, powinieneś spojrzeć na Mapnificent API .
Spójrz na Londyn tutaj .
źródło
Natknąłem się również na rozszerzenie sieciowe gvSIG , ale dokumentacja konfiguracyjna, którą do tej pory znalazłem, jest dość słaba. Mam na to duże nadzieje, muszę tylko ustalić szczegóły obliczania kosztów.
Użyłem danych amerykańskiego spisu ludności TIGER dla sieci drogowej i faktycznie wygenerowałem kilka wielokątów, ale po prostu nie mogłem uzyskać jednostek kosztu, które naprawdę miałyby sens. Jeśli ktoś pomyślnie wdrożył to narzędzie, chciałbym o nim usłyszeć.
Znalazłem także Quantum Navigator dla QGIS, ale nie znalazłem żadnych najnowszych aktualizacji.
źródło
Rezultat podejścia z wklęsłym kadłubem jest świetny i zainspirowałem się powyższymi zdjęciami. Zauważyłem jednak, że wyniki mogą obejmować niektóre obszary niedostępne na drodze (na przykład rzekę). Nie ma wątpliwości, że nie stanowi to problemu pod względem wyszukiwania odpowiednich cech (centroidy populacji, liczba domów) według odległości lub czasu od miejsca pochodzenia. Ale działa również tylko na obu końcach każdego linku. Znowu nie stanowi to problemu w zdecydowanej większości przypadków (ponieważ najdłuższe połączenia drogowe mają kontrolę dostępu - normalnie nie można ich zjechać, dopóki nie dojdzie się do następnego skrzyżowania / skrzyżowania).
Mimo to pracowałem nad innym podejściem opartym na LINKACH zwracanych przez PgRouting / (lub surowym algorytmie „Dijkstra”) uporządkowanym według czasu z węzła źródłowego. Jest to stosunkowo proste i kategoryzuje linki według przedziału czasowego, a także dzieli linki, które przekraczają granice czasu. Następnie linki o tej samej kategoryzacji (np. 0-2 minuty, 2-4 minuty) są buforowane o 250 metrów.
źródło
Na tegorocznym WhereCampPDX kilku przedstawicieli OpenStreetMap stwierdziło, że używanie danych OSM do routingu jest dość powszechne w Europie. Jest to jednak rzadsze w USA, ponieważ mapa zwykle nie jest wystarczająco dobra. Możesz sprawdzić usługę routingu opartą na OSM pod adresem:
http://openrouteservice.org/
źródło