Czy istnieje sposób, aby uzyskać dostęp do danych o ruchu, które Google udostępnia za pośrednictwem usługi internetowej?
Wydaje się, że istnieje GTrafficOverlay
taka, która umieszcza ruch na szczycie trasy na wbudowanej mapie Google, ale nie ma bezpośredniej usługi internetowej, którą mogę wykorzystać, powiedzmy, aby podać źródło i miejsce docelowe i znaleźć ruch między nimi?
Czy jest jakieś inne źródło, z którego mogę uzyskać te dane?
google-maps-api-3
Tejaswi Yerukalapudi
źródło
źródło
Odpowiedzi:
Nie ma sposobu (lub przynajmniej rozsądnie łatwego i wygodnego sposobu), aby uzyskać nieprzetworzone dane o ruchu z Google Maps Javascript API v3. Nawet jeśli możesz to zrobić, prawdopodobnie naruszy to jakąś klauzulę w Warunkach korzystania z usługi Google Maps. Musisz uzyskać te informacje z innej usługi. Wątpię, czy istnieje obecnie bezpłatna usługa, która dostarcza tych informacji, ale bardzo bym chciała, gdyby ktoś udowodnił mi, że się myliłem.
Jak wskazuje @crdzoba, Bing Maps API udostępnia niektóre dane o ruchu . Być może to zaspokoi Twoje potrzeby. Z dokumentacji nie wynika jasno, ile danych o ruchu ujawnia, ponieważ są to tylko dane o „incydentach”. Byłby tam spowolniony ruch z powodu robót budowlanych, ale nie jest dla mnie oczywiste, czy będzie to powolny ruch ze względu na wielkość.
AKTUALIZACJA (marzec 2016 r.): Wiele się wydarzyło od czasu napisania tej odpowiedzi w 2011 r., Ale wydaje się, że główne punkty pozostają niezachwiane: nie znajdziesz surowych danych o ruchu w bezpłatnych usługach API (przynajmniej nie dla Stanów Zjednoczonych i prawdopodobnie nie w większości innych miejsc). Ale jeśli nie masz nic przeciwko zapłaceniu trochę i / lub jeśli potrzebujesz po prostu „czasu podróży na określonej trasie z uwzględnieniem ruchu”, masz opcje. Na przykład odpowiedź @ Anto wskazuje na Google Maps For Work jako płatną usługę API, która pozwala uzyskać czas podróży z uwzględnieniem natężenia ruchu.
źródło
Najwyraźniej informacje są dostępne za pomocą Google Directions API w profesjonalnym wydaniu Maps for work . Zgodnie z dokumentacją API :
źródło
Możesz zajrzeć do serwisu HERE MAP SERVICE. Mają bezpośrednie dane o ruchu, których możesz użyć, a dokładnie to, czego potrzebujesz: https://developer.here.com/api-explorer/rest/traffic/traffic-flow-bounding-box
Na przykład, pytając o obszar zainteresowania, możesz otrzymać coś takiego:
Ten przykład pokazuje bieżącą średnią prędkość
SU
9,1, przy czym prędkość swobodnego przepływuFF
wynosiłaby 17. Współczynnik zatoruJF
wynosi 3,3, co nadal jest uważane za swobodny przepływ, ale staje się powolny. Używane jednostki (mile / km) można zdefiniować w wywołaniu interfejsu API. Aby uniknąć zajmowania się lokalizacjami TMC, możesz poprosić o podanie współrzędnych geograficznych odcinków drogi, dodającresponseattributes=sh
żądanie.Zastosowane skróty można znaleźć tutaj. Interpretacja map HERE Maps w czasie rzeczywistym :
Również źródło pochodzi z https://developer.here.com/rest-apis/documentation/traffic/topics/additional-parameters.html
źródło
Bing Maps API ma usługę REST, która zwraca informacje o ruchu
http://msdn.microsoft.com/en-us/library/hh441725
źródło
Zamiast próbować pobierać nieprzetworzone dane o ruchu, możesz wypróbować inne podejście. Interfejs API Google Directions umożliwia wysyłanie zapytań do interfejsu API za pomocą określonej trasy i zwraca jako wynik ciąg JSON lub element XML. Wynik ten zawiera element - „duration_in_traffic” Wskazuje całkowity czas trwania danego odcinka podróży, biorąc pod uwagę aktualne warunki drogowe. (aby uzyskać informacje na temat „nogi” i innych elementów ciągu JSON zwracanych przez interfejs Directions API, należy zapoznać się z poniższym linkiem)
https://developers.google.com/maps/documentation/directions/#JSON Sam tego nie próbowałem, ale po prostu znalazłem coś w dokumentacji.
źródło
W Indiach korzystamy z witryny http://www.itrafficnews.com . Ale dane są publikowane przez użytkowników. Nie sądzę, żeby Google dostarczyło dane.
źródło
Może powinieneś rzucić okiem na Mapquests Traffic API: http://www.mapquestapi.com/traffic/
Usługa internetowa jest niestety dostępna tylko dla niektórych miast w USA, jak sądzę. Ale prawdopodobnie to rozwiązuje twój problem.
źródło
Nie sądzę, że Google zapewni ten interfejs API. Dane o ruchu zawierają nie tylko dane o zdarzeniach.
Obecnie wiele map online pokazuje ruch w mieście, ale nie zapewniają one API dla dewelopera. Nie wiemy nawet, skąd biorą dane o ruchu. Może rząd ma dane.
Więc myślę, że można by pomyśleć o tym z innej strony. Na przykład istnieje wiele witryn sieci społecznościowych. Każdy mógł zamieścić informacje o ruchu na stronie internetowej. Możemy zbierać te informacje, aby uzyskać stan ruchu. A może uda nam się stworzyć taką stronę internetową.
Ale tego typu dane o ruchu (o których mowa powyżej) nie są dokładne. Nawet informacje dostarczone przez człowieka będą błędne.
Na szczęście odkryłem, że moje miasto udostępnia teraz aplikację mobilną o nazwie „Informacje o autobusach w czasie rzeczywistym”. Mógłby powiedzieć obywatelowi, gdzie jest teraz autobus i kiedy przyjedzie na dworzec autobusowy. Wyczuwam REST API w tej aplikacji. Dane z REST API podają ważne dane, na przykład szerokość i długość, a także prędkość magistrali. I to są dane w czasie rzeczywistym! Więc myślę, że moglibyśmy obliczyć stan ruchu na podstawie tych danych (przez niektóre programy). Oto kilka przykładowych danych: https://github.com/sp-chenyang/bus/blob/master/sample_data/bjgj_aibang_com_8899_bjgj_php_city_linename_stationno_datatype_type.json
Nawet dane magistrali nie wystarczą do obliczenia dokładnego stanu ruchu w czasie rzeczywistym. Zdarzenia, sygnalizacja świetlna i inne rzeczy będą miały wpływ na stan ruchu. Ale myślę, że to początek.
Na koniec myślę, że możesz spróbować sprawdzić, czy twoje miasto dostarcza te dane.
PS: Zawsze myślę, że życie ludzi będzie lepsze w przyszłości, ale nie teraz.
źródło
Możliwe jest uzyskanie danych o ruchu. Poniżej znajduje się moja implementacja w Pythonie. Interfejs API ma pewien limit i nie jest w pełni darmowy, ale wystarczająco dobry dla małych projektów
Odpowiedź to: -
Musisz przekazać
"departure_time":str(int(time.time()))
to wymagany parametr ciągu zapytania dla informacji o ruchu.Twoje informacje o ruchu będą obecne w formacie
duration_in_traffic
.Więcej informacji znajdziesz w tej dokumentacji.
źródło
Istnieje projekt o nazwie Open Traffic, który nie jest obecnie w pełni funkcjonalny, ale wydaje się być właściwą odpowiedzią w przyszłości.
źródło