Pregunta

¿Hay alguna manera de acceder a los datos de tráfico que Google ofrece a través de un servicio web?

Parece que hay un GTrafficOverlay que el tráfico pone en lo alto de una ruta en un mapa de Google incorporado, pero no hay servicio web directo que puede consumir a, por ejemplo, indique la fuente y el destino y encontrar el tráfico entre ellos?

¿Hay alguna otra fuente que pueda obtener estos datos de?

¿Fue útil?

Solución

No hay manera (o al menos no razonablemente fácil y conveniente) para obtener los datos de tráfico en bruto de JavaScript de Google Maps API v3. Incluso si pudiera hacerlo, hacerlo es probable que viole alguna cláusula de las Condiciones del servicio de Google Maps. Usted tendría que obtener esta información de otro servicio. Dudo que haya un servicio gratuito que proporciona esta información en el momento actual, pero me gustaría que si alguien me resultó ser malo en eso.

Como @crdzoba señala, Bing Maps API expone algunos datos de tráfico . Quizás que pueden llenar sus necesidades. No está claro a partir de la documentación de la cantidad de datos que expone el tráfico, ya que es sólo datos sobre "incidentes". Tráfico lento debido a la construcción estaría en allí, pero no es obvio para mí si el tráfico lento debido simplemente al volumen sería.

ACTUALIZACIÓN (marzo de 2016): Mucho ha ocurrido desde esta respuesta fue escrito en 2011, pero los puntos centrales parecen contener hasta: Usted no encontrará datos tráfico prima en libre los servicios del API (por lo menos no para los EE.UU., y probablemente no la mayoría otros lugares). Pero si no te importa pagar un poco y / o si sólo tiene cosas como "tiempo de viaje para una ruta específica teniendo en cuenta el tráfico" tiene varias opciones. @ de Anto respuesta, por ejemplo, puntos a Mapas de Google for Work como un servicio API de pago que le permite obtener los tiempos de viaje teniendo en cuenta el tráfico.

Otros consejos

Al parecer, la información está disponible utilizando el href="https://developers.google.com/maps/documentation/directions/" rel="noreferrer"> Google llegar API Mapas para el trabajo . De acuerdo con de la API de documentación :

  

Nota: Los mapas para los usuarios de trabajo debe incluir parámetros del cliente y la firma con sus peticiones en lugar de una clave
.   [...]
   duration_in_traffic indica la duración total de este tramo, teniendo en cuenta las condiciones de tráfico actuales. La duración en el tráfico sólo será devuelto si todos los siguientes son verdaderas:

     
      
  • La solicitud de ruta incluye un conjunto de parámetros departure_time a un valor dentro de unos minutos de la hora actual.
  •   
  • La solicitud incluye una API de Google Maps válida para el cliente de trabajo y la firma del parámetro .
  •   
  • Las condiciones del tráfico están disponibles para la ruta solicitada.
  •   
  • La solicitud de ruta no incluye puntos de referencia de escala.
  •   

Bing Maps API tiene un servicio de descanso que la información de tráfico vuelve

http://msdn.microsoft.com/en-us/library/hh441725

Es posible que desee echar un vistazo a AQUÍ servicio de mapas. Tienen datos de tráfico directos que puede utilizar, que es exactamente lo que necesita: https://developer.here.com/api-explorer/rest/traffic/traffic-flow-bounding-box

Por ejemplo, mediante la consulta de un área de interés, es posible obtener algo como esto:

{
  "RWS": [
    {
      "RW": [
        {
          "FIS": [
            {
              "FI": [
                {
                  "TMC": {
                    "PC": 32483,
                    "DE": "SOHO",
                    "QD": "+",
                    "LE": 0.71682
                  },
                  "CF": [
                    {
                      "TY": "TR",
                      "SP": 9.1,
                      "SU": 9.1,
                      "FF": 17,
                      "JF": 3.2911,
                      "CN": 0.9
                    }
                  ]
                }
              ]
            }
          ],
....

Este ejemplo muestra una corriente SU velocidad media de 9,1, donde el flujo FF libre velocidad sería 17. factor de The Jam JF es 3,3, que es todavía considerado flujo libre pero conseguir lento. Las unidades utilizadas (millas / km) se pueden definir en la llamada a la API. Para evitar el trato con localizaciones TMC, puede solicitar coordenadas geográficas de los segmentos de carretera mediante la adición de responseattributes=sh en la solicitud.

Las abreviaturas utilizadas se pueden encontrar aquí Interpretación AQUÍ Mapas etiquetas de tráfico en tiempo real :

  
      
  • "RWS" - artículo en la lista A de Carreteras (RW)
  •   
  • "RW" = Este es el artículo de material compuesto para el flujo a través de toda una calzada. Un elemento de carretera estará presente para cada calzada con   información de flujo de tráfico disponible
  •   
  • "FIS" = Una lista de Flow Artículo (FI) elementos
  •   
  • "FI" = Un elemento de flujo único
  •   
  • "TMC" = Colección ordenada de lugares TMC
  •   
  • "PC" = Punto TMC Código Localización
  •   
  • "DE" = Descripción del texto de la carretera
  •   
  • dirección "QD" = Queuing. '+' O '-'. Tenga en cuenta que esto es lo opuesto a la dirección de desplazamiento en el ID completo, por ejemplo para   ubicación 107 + 03021 del QD sería '-'
  •   
  • "LE" = longitud del tramo de carretera. Las unidades se definen en el archivo de cabecera
  •   
  • "CF" = flujo de corriente. Este elemento contiene información sobre la velocidad y la información del factor de atasco para el elemento de flujo dada.
  •   
  • "CN" = confianza, se determinó una indicación de cómo la velocidad. -1.0 camino cerrado. 1,0 = 100% 0,7 a 100% Historical Por lo general   un valor entre 0,7 y 1,0 "FF" = La velocidad de flujo libre en esta
      tramo de carretera.
  •   
  • "JF" = El número entre 0,0 y 10,0 que indica la calidad esperada de la marcha. Cuando hay un cierre de la carretera, el Factor de Jam   será 10. A medida que se acerca el número 10.0 de la calidad de los viajes se   empeorando. -1.0 indica que un factor Jam no podía ser   calculado
  •   
  • "SP" = velocidad (basado en unidades) coronada por límite de velocidad
  •   
  • "Unión Soviética" = velocidad (sobre la base de unidades) no limitado por el límite de velocidad
  •   
  • "TY" = Tipo de información para el contenedor Localización Hacer referencia dado. cadena Esto puede ser libremente definido
  •   

También la fuente proviene de https://developer.here.com/rest- apis / documentación / tráfico / temas / adicional-parameters.html

En la India estamos utilizando http://www.itrafficnews.com . Pero los datos son escritos por los usuarios. No creo que Google proporcionará los datos.

En lugar de tratar de sacar los datos de tráfico primas, se puede intentar un enfoque diferente. La API de rutas de Google le permite consultar la API con una ruta particular y devuelve una cadena JSON o elemento XML como resultado. Este resultado incluye el elemento - 'duration_in_traffic' Esto indica la duración total de la rama en particular del viaje, teniendo en cuenta las condiciones de tráfico actuales. (Para obtener información sobre 'pierna' y otros elementos de la cadena JSON devuelto por la API de instrucciones se refieren enlace más abajo)

https://developers.google.com/maps/documentation/directions/# JSON No he probado esto por mí mismo, sino sólo algo que encontré en la documentación.

Tal vez debería echar un vistazo a la API Mapquests Tráfico: http://www.mapquestapi.com/traffic/

El servicio web es, por desgracia sólo está disponible para algunos citys en los EE.UU., creo. Pero, probablemente, los que resuelve su problema.

No creo que Google proporcionará esta API. Y los datos de tráfico no sólo contiene los datos incidente.

Hoy en día muchos mapas en línea mostrar el tráfico de la ciudad, pero no han proporcionar a la API para los desarrolladores. Incluso no sabemos de dónde sacan los datos de tráfico. Tal vez el gobierno tiene los datos.

Así que creo que se podría pensar en ello desde otra dirección. Por ejemplo, hay muchos sitios web por ahí red social. Todo el mundo puede publicar la información de tráfico en el sitio web. Podemos colección de esta información para conocer el estado del tráfico. O tal vez podemos crear un sitio web de este tipo.

Pero ese tipo de datos de tráfico (hablado más arriba) no es exacta. Incluso la información proporcionada por humanos será un error.

Por suerte me encontré con que mi ciudad ahora ofrece una aplicación móvil llamada "información de autobuses en tiempo real". Se podría decir que el ciudadano donde el autobús es ahora, y cuando llegará a la estación de autobuses. Y olfateo la API REST en esta aplicación. Los datos de REST API dan los datos importantes, por ejemplo el lat y lon, y también la velocidad del bus. Y es información en tiempo real! Por lo tanto, creo que podríamos calcular el estado del tráfico a partir de estos datos (por algo de programación). Aquí hay algunos datos de muestra: https://github.com/sp -chenyang / autobús / burbuja / maestro / SAMPLE_DATA / bjgj_aibang_com_8899_bjgj_php_city_linename_stationno_datatype_type.json

Incluso los datos del bus no lo hará suficientes para calcular la situación exacta del tráfico en tiempo real. Incidentes, semáforos y otras cosas afectarán el estado del tráfico. Pero creo que esto es el comienzo.

Al final, creo que se podría tratar de encontrar si su ciudad proporciona estos datos.

PS:. Siempre estoy pensando que la vida será mejor para las personas en el futuro, pero no ahora

Es posible obtener datos de tráfico. A continuación es mi aplicación en Python. La API tiene cierta cuota y no es totalmente libre, pero lo suficientemente bueno para proyectos pequeños

import requests
import time
import json


while True:

    url = "https://maps.googleapis.com/maps/api/distancematrix/json"

    querystring = {"units":"metric","departure_time":str(int(time.time())),"traffic_model":"best_guess","origins":"ITPL,Bangalore","destinations":"Tin Factory,Bangalore","key":"GetYourKeyHere"}

    headers = {
        'cache-control': "no-cache",
        'postman-token': "something"
        }

    response = requests.request("GET", url, headers=headers, params=querystring)
    d = json.loads(response.text)
    print("On", time.strftime("%I:%M:%S"),"time duration is",d['rows'][0]['elements'][0]['duration']['text'], " & traffic time is ",d['rows'][0]['elements'][0]['duration_in_traffic']['text'])
    time.sleep(1800)
    print(response.text)

La respuesta es: -

{
    "destination_addresses": [
        "Tin Factory, Swamy Vivekananda Rd, Krishna Reddy Industrial Estate, Dooravani Nagar, Bengaluru, Karnataka 560016, India"
    ],
    "origin_addresses": [
        "Whitefield Main Rd, Pattandur Agrahara, Whitefield, Bengaluru, Karnataka 560066, India"
    ],
    "rows": [
        {
            "elements": [
                {
                    "distance": {
                        "text": "10.5 km",
                        "value": 10505
                    },
                    "duration": {
                        "text": "35 mins",
                        "value": 2120
                    },
                    "duration_in_traffic": {
                        "text": "45 mins",
                        "value": 2713
                    },
                    "status": "OK"
                }
            ]
        }
    ],
    "status": "OK"
}

Tiene que pasar "departure_time":str(int(time.time())) es un parámetro de cadena de consulta requerido para la información de tráfico.

Su información de tráfico estaría presente en duration_in_traffic.

Consulte esta documentación para obtener más información.

https://developers.google.com/maps/documentation/distance-matrix/intro#traffic-model
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top