Google maps api 3 访问谷歌&x27;通过Web服务访问流量数据

Google maps api 3 访问谷歌&x27;通过Web服务访问流量数据,google-maps-api-3,Google Maps Api 3,有没有一种方法可以让我访问谷歌通过网络服务提供的流量数据 似乎有一个GTrafficOverlay将流量放在嵌入式谷歌地图上的路线之上,但没有直接的web服务,我可以使用它,比如说,提供来源和目的地,并找到它们之间的流量 是否有其他来源可以获取这些数据?没有任何方法(或者至少没有合理简单方便的方法)从Google Maps Javascript API v3获取原始流量数据。即使你可以这样做,这样做也可能违反谷歌地图服务条款中的某些条款。您必须从其他服务获取此信息。我怀疑目前是否有免费的服务提供

有没有一种方法可以让我访问谷歌通过网络服务提供的流量数据

似乎有一个
GTrafficOverlay
将流量放在嵌入式谷歌地图上的路线之上,但没有直接的web服务,我可以使用它,比如说,提供来源和目的地,并找到它们之间的流量

是否有其他来源可以获取这些数据?

没有任何方法(或者至少没有合理简单方便的方法)从Google Maps Javascript API v3获取原始流量数据。即使你可以这样做,这样做也可能违反谷歌地图服务条款中的某些条款。您必须从其他服务获取此信息。我怀疑目前是否有免费的服务提供这些信息,但如果有人证明我错了,我会喜欢的

正如@crdzoba指出的那样。也许这能满足你的需要。文档中不清楚暴露了多少流量数据,因为它只是关于“事件”的数据。由于施工造成的缓慢交通将在那里,但对于我来说,仅仅由于交通量造成的缓慢交通是否会在那里并不明显


更新(2016年3月):自2011年写下这个答案以来,发生了很多事情,但核心观点似乎站得住脚:在免费API服务中找不到原始流量数据(至少在美国没有,可能在大多数其他地方也没有)。但如果你不介意付一点钱和/或你只需要“考虑交通量的特定路线的旅行时间”之类的东西,你可以选择,例如,将指向作为付费API服务,允许您在考虑交通的情况下获取旅行时间。

也许您应该看看Mapquests交通API:


不幸的是,我认为,Web服务只适用于美国的一些城市。但它可能解决了你的问题

Bing地图API有一个返回流量信息的REST服务


在印度,我们正在使用。但是数据是由用户发布的。我认为谷歌不会提供数据。

我认为谷歌不会提供这个API。交通数据不仅包含事故数据

今天,许多在线地图显示城市交通,但它们没有为开发者提供API。我们甚至不知道他们从哪里得到交通数据。也许政府掌握了数据

所以我想你可以从另一个角度来考虑。例如,有很多社交网站。每个人都可以在网站上发布交通信息。我们可以收集这些信息来获取交通状况。或者我们可以创建一个这样的网站

但这种类型的流量数据(上面讨论过)并不准确。即使是人类提供的信息也是错误的

幸运的是,我发现我的城市现在提供了一个名为“实时公交信息”的移动应用程序。它可以告诉市民公共汽车现在在哪里,什么时候到达汽车站。我在这个应用程序中嗅探RESTAPI。 RESTAPI中的数据提供了重要的数据,例如lat和lon,以及总线速度。而且是实时数据!所以我认为我们可以从这些数据(通过一些编程)计算交通状况。 以下是一些示例数据:

即使是公交车数据也不足以计算准确的实时交通状态。事故、交通灯等会影响交通状况。但我认为这是一个开始

最后,我想你可以试着找出你所在的城市是否提供了这些数据


PS:我一直认为未来人们的生活会更好,但不是现在。

与其尝试提取原始交通数据,不如尝试另一种方法。 GoogleDirections API允许您查询具有特定路由的API,并返回JSON字符串或XML元素作为结果。 此结果包括元素-“持续时间\u在\u流量中” 这表示考虑到当前交通状况,特定行程段的总持续时间。(有关方向API返回的JSON字符串的“leg”和其他元素的信息,请参阅下面的链接)


我自己没有试过,只是在文档中看到了一些东西。

显然,这些信息可以在其专业版中使用。根据:

注意:工作用户的映射必须在其请求中包含客户端和签名参数,而不是密钥。
[…]
考虑到当前交通状况,duration_in_traffic表示该路段的总持续时间。仅当以下所有条件均为真时,才会返回流量持续时间:

  • 方向请求包括设置为当前时间几分钟内的值的离开时间参数
  • 该请求包括用于工作客户端的有效Google Maps API和签名参数
  • 请求路线的交通条件可用
  • 方向请求不包括中途停留航路点

您可能想看看这里的地图服务。他们有您可以使用的直接交通数据,这正是您所需要的:

例如,通过查询感兴趣的区域,您可能会得到如下结果:

{
  "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”=这是整个道路流量的组合项。每个r将有一个道路项目
    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"
    }
    
    https://developers.google.com/maps/documentation/distance-matrix/intro#traffic-model