Доступ к данным трафика Google через веб-сервис

StackOverflow https://stackoverflow.com/questions/4600656

  •  25-09-2019
  •  | 
  •  

Вопрос

Есть ли способ, которым я могу получить доступ к данным трафика, что Google предоставляет через веб-сервис?

Кажется, GTrafficOverlay Это помещает трафик поверх маршрута на встроенной карте Google, но никакой прямой веб-службы, которую я могу потреблять, скажем, дать источник и пункт назначения и найти трафик между ними?

Есть ли другой источник, от которого я могу получить эти данные?

Это было полезно?

Решение

Нет никакого способа (или, по крайней мере, нет достаточно простого и удобного способа), чтобы получить данные необработанного движения из Google Maps JavaScript API V3. Даже если бы вы могли это сделать, это, вероятно, нарушает некоторое предложение в условиях обслуживания для Google Maps. Вы должны были бы получить эту информацию с другой услуги. Я сомневаюсь, что есть бесплатный сервис, который предоставляет эту информацию в текущем времени, но я бы понравился, если кто-то доказал меня неправильно на этом.

Как @crdzoba указывает, Bing Maps API обнажает некоторые данные трафика. Отказ Возможно, это может заполнить ваши потребности. Из документации не ясно, сколько данных трафика, которая обнародовала как только данные о «инцидентах». Медленный трафик из-за строительства будет там, но для меня не очевидно, будет ли медленный трафик только для объема.

Обновление (март 2016 г.): много произошло, так как этот ответ был написан в 2011 году, но основные очки, кажется, удерживают: вы не найдете данные необработанного движения в бесплатно API Услуги (по крайней мере, не для США, и, вероятно, не большинство других мест). Но если вы не против платить немного и / или, если вам просто нужны такие вещи, как «Время в пути для конкретного маршрута, принимающего во внимание трафик», у вас есть варианты. @ Ответ Анто, например, указывает на Карты Google для работы в качестве платной службы API, который позволяет вам воспользоваться трафиками времени на поездки.

Другие советы

По-видимому, информация доступна с использованием API Google Rightions API В своем профессиональном издании Карты для работы. Отказ Согласно с Документация API:

Примечание. Карты для рабочих пользователей должны включать параметры клиента и подписи со своими запросами вместо ключа.
[...]
длительность_in_traffic. Указывает общую продолжительность этой ноги, принимая во внимание текущие условия движения. Продолжительность в трафике будет возвращена только в том случае, если все следующие верны:

  • Запрос направлений включает в себя параметр Deletore_time, установленный на значение в течение нескольких минут текущего времени.
  • Запрос включает в себя действительные API Google Maps для параметра Work Client и Signature.
  • Условия движения доступны для запрошенного маршрута.
  • Запрос направлений не включает точки остановки.

Bing Maps API имеет службу отдыха, которая возвращает информацию о трафике

http://msdn.microsoft.com/en-us/libraryary/hhh441725.

Возможно, вы захотите взглянуть на здесь карту сервис. У них есть прямые данные трафика, которые вы можете использовать, что именно то, что вам нужно: https://developer.here.com/ap-explorer/rest/traffic/traffic-flow-bounding-box.

Например, запрашивая интересующую область, вы можете получить что-то подобное:

{
  "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
                    }
                  ]
                }
              ]
            }
          ],
....

В этом примере показана текущая средняя скорость SU 9.1, где скорость свободного потока FF будет 17. Фактор варенья JF 3.3, который все еще считается свободным потоком Но становиться вялым. Используемые блоки (миль / км) могут быть определены в вызове API. Чтобы не иметь дело с местами TMC, вы можете попросить геокоординаты сегментов дороги, добавив responseattributes=sh по запросу.

Используемые сокращения можно найти здесь Интерпретация здесь отображает метки движения в реальном времени:

  • «RWS» - список предметов проезжей части (RW)
  • «RW» = Это композитный предмет для потока по всей дороге. Предмет проезжей части будет присутствовать для каждой проезжей части с доступной информацией потока трафика
  • «FIS» = список элементов элементов потока (FI)
  • "Fi" = единый предмет потока
  • «TMC» = заказанная коллекция мест TMC
  • «ПК» = точечный код местоположения TMC
  • "De" = текстовое описание дороги
  • «QD» = направление очередей. '+' или '-'. Примечание. Это противоположность направлению движения в полностью квалифицированном идентификаторе, например, для местоположения 107 + 03021 QD будет «-»
  • «Ле» = длина участка дороги. Единицы определены в заголовке файла
  • «CF» = текущий поток. Этот элемент содержит подробную информацию о состоянии скорости и фактора джема для данного элемента потока.
  • «CN» = уверенность, указание того, как была определена скорость. -1,0 Дорога закрыта. 1.0 = 100% 0,7-100% Исторический, как правило, значение между 0,7 и 1,0 "FF" = Свободная скорость потока на этом
    простирание дороги.
  • «JF» = число от 0.0 и 10.0, указывающее ожидаемое качество путешествий. Когда есть замыкание дороги, коэффициент джема будет 10. По мере того, как число подходит 10.0 качество путешествий ухудшается. -1.0 указывает, что коэффициент джема не может быть рассчитан
  • «SP» = скорость (на основе единиц), ограничена ограничением скорости
  • «SU» = скорость (на основе единиц), не ограничена ограничением скорости
  • «TY» = Введите информацию для данного контейнера для ссылок на ссылку. Это может быть свободно определена строка

Также источник исходит изhttps://devipper.here.com/rest-apis/documentation/traffic/topics/additional-parameters.html.

В Индии мы используем http://www.itrafficnews.com.. Отказ Но данные размещены пользователями. Я не думаю, что Google предоставит данные.

Вместо того, чтобы пытаться вытащить данные необработанного движения, вы можете попробовать другой подход. API Google Rirections позволяет запросить API с определенным маршрутом и возвращает строку JSON или элемент XML в результате. Этот результат включает в себя элемент - «Direction_in_Traffic» это указывает на общую продолжительность конкретной ноги пути, принимая во внимание текущие условия трафика. (Для получения информации о «ногой» и других элементах строки JSON, возвращаемой направлениями API, называете ссылку ниже)

https://developers.google.com/maps/documentation/directions/#json.Я не пробовал это сам, а просто то, что я столкнулся с документацией.

Может быть, вы должны посмотреть на Mapests Traffic API: http://www.mapquestapi.com/traffic/

Я думаю, что WebService к сожалению доступно только для некоторых городов в США. Но, вероятно, это решает вашу проблему.

Я не думаю, что Google предоставит это API. И данные трафика не только содержит падающие данные.

Сегодня многие онлайн-карты показывают городской трафик, но они не предоставляют API для разработчика. Мы даже не знаем, где они получают данные трафика. Возможно, правительство имеет данные.

Поэтому я думаю, что вы могли бы подумать об этом из другого направления. Например, там есть много социальных сетей. Все могут опубликовать информацию о трафике на сайте. Мы можем сбрать эту информацию, чтобы получить статус трафика. Или, может быть, мы можем создать сайт этого типа.

Но этот тип трафика данных (разговариваемых выше) не точна. Даже информация, предоставленная человеком, будет неверной.

К счастью, я обнаружил, что мой город теперь предоставляет мобильное приложение под названием «Информация о автобусе в реальном времени». Это может сказать гражданину, где автобус сейчас, и когда прибудет на автобусную станцию. И я понюхать API для отдыха в этом приложении. Данные из API REST предоставляют важные данные, например, LAT и LON, а также скорость шины. И это данные в режиме реального времени! Поэтому я думаю, что мы могли бы выделить статус трафика из этих данных (по некоторым программированию). Вот некоторые примеры данных: https://github.com/sp-chenyang/bus/blob/master/sample_data/bjgj_aibang_com_8899_bjgj_php_city_lineName_stationno_datatype_type.json.

Даже данные шины не будут достаточно, чтобы вычислить точный статус трафика в реальном времени. Инциденты, светофор и другие вещи повлияют на состояние трафика. Но я думаю, что это начало.

В конце, я думаю, вы можете попытаться найти, предоставляет ли ваш город эти данные.

PS: Я всегда думаю, что жизнь будет лучше для людей в будущем, но не сейчас.

Можно получить данные трафика. Ниже приведена моя реализация в Python. API имеет некоторую квоту и не полностью свободен, но достаточно хорошо для небольших проектов

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)

Ответ: -

{
    "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"
}

Вам нужно пройти "departure_time":str(int(time.time())) является необходимым параметром строки запроса для информации о трафике.

Ваша информация о трафике будет присутствовать в duration_in_traffic.

Обратитесь к этой документации для получения дополнительной информации.

https://developers.google.com/maps/documentation/distance-matrix/intro#traffic-model
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top