PYTHON:GoogleAPI方向层在10次请求后显示多个点之间的路由时,给出了超过查询限制

PYTHON:GoogleAPI方向层在10次请求后显示多个点之间的路由时,给出了超过查询限制,python,google-maps,map-directions,google-directions-api,Python,Google Maps,Map Directions,Google Directions Api,我正在做一个项目,使用google map distance API显示来自数据帧的a点和B点之间的路线,我不断得到的错误。” [方向层]您发送的方向请求太多。请等待配额补充“。只有当请求数超过10时才会发生这种情况。尽管如此,我在第10次请求后增加了1秒的延迟,但运气不好!我还尝试批量发送请求,每个请求的大小为10个,但这也不起作用!此外,我还阅读了API文档 我有帐单设置,虽然我在免费试用,显然我仍然有超过300美元的信用卡 这是我的代码的一个模拟,非常简单,供您参考 import gmap

我正在做一个项目,使用google map distance API显示来自数据帧的a点和B点之间的路线,我不断得到的错误。”
[方向层]您发送的方向请求太多。请等待配额补充“
。只有当请求数超过10时才会发生这种情况。尽管如此,我在第10次请求后增加了1秒的延迟,但运气不好!我还尝试批量发送请求,每个请求的大小为10个,但这也不起作用!此外,我还阅读了API文档

我有帐单设置,虽然我在免费试用,显然我仍然有超过300美元的信用卡

这是我的代码的一个模拟,非常简单,供您参考

import gmaps
import time

dict_k ={}
dict_k['st_coordinates'] =[ '24.760669, 54.704782','25.168596, 56.355549','25.004274, 55.063742','25.000252, 55.060932',
                            '24.872900, 55.137325','24.537609, 54.383664','24.050339, 53.470903','24.211435, 55.424501',
                            '24.196804, 55.855923','24.308309, 54.675861','24.988239, 55.104435','24.985047, 55.071542',
                            '24.306433, 54.490205','25.000252, 55.060932','24.536064, 54.383048'  ] 

dict_k['en_coordinates'] =[ '24.454036, 54.376656','24.130453, 55.801786','23.931339, 53.045892','24.171,54.408',
                            '24.454036, 54.376656','24.130453, 55.801786','23.931339, 53.045892','24.171,54.408',
                            '24.454036, 54.376656','24.130453, 55.801786','23.931339, 53.045892','24.171,54.408',
                            '24.454036, 54.376656','24.130453, 55.801786','23.931339, 53.045892']
key = 'AIzA...............'
dataframe =  pd.DataFrame.from_dict(dict_k) 


def draw_map (dataframe,key):
    gmaps.configure(key)
    fig = gmaps.figure()

    for i in range(len(dataframe)):

        start_point = eval(dataframe['st_coordinates'].iloc[i] )
        end_point =   eval(dataframe['en_coordinates'].iloc[i] )

        layer = gmaps.directions_layer(start_point, end_point)
        fig.add_layer(layer)

        if i >10:
            time.sleep(1)

    return fig

df = draw_map(dataframe,key)
df

这里是API指南的链接。说得很清楚。

您可以通过以下方式超过Google地图平台web服务的使用限制:

  • 每天发送的请求太多
  • 发送请求太快,即每秒发送的请求太多
  • 发送请求的速度太快,时间太长,或者滥用web服务
  • 超过其他使用限制,例如,高程API中每个请求的点数。 超出使用限制 如果您超过使用限制,您将得到一个OVER_QUERY_LIMIT状态代码作为响应
  • 这意味着web服务将停止提供正常响应,并切换到仅返回超过查询限制的状态代码,直到再次允许更多使用。这种情况可能发生:

  • 如果由于应用程序每秒发送的请求太多而收到错误,则在几秒钟内
  • 在接下来的24小时内,如果由于应用程序每天发送的请求太多而收到错误。每日配额在太平洋时间午夜重置

  • 在收到状态代码超过\u QUERY\u LIMIT的响应后,应用程序应确定超出了哪个使用限制。这可以通过暂停2秒钟并重新发送相同的请求来完成。如果状态代码仍然超过查询限制,则应用程序每天发送的请求太多。否则,您的应用程序每秒发送的请求太多。

    “我在第10个请求之后添加了1秒延迟,但没有运气!”-为什么您认为您的配额会在1秒内重置?这不是配额重置,我强制应用程序在发送下一个请求之前等待1秒。我已经读到,在第10次请求之后,您应该等待1秒钟,然后再发送其余的请求。问题仍然是:为什么您认为延迟1秒钟会起到任何作用?配额通常不是这样的。速率限制可能会出现,但您的错误消息明确表示“等待配额补充”。所以,嗯。。。等待配额补充。嗨@Chris,因为每当我再次运行相同的代码时(但分数不超过10分),消息就会消失:)