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

2024-03-29 11:47:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,使用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

Tags: keyimportlayerapimapdataframetimefig
1条回答
网友
1楼 · 发布于 2024-03-29 11:47:58

这里是API指南的链接。说得很清楚。 https://developers.google.com/maps/premium/previous-licenses/articles/usage-limits

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

  1. 每天发送的请求太多
  2. 发送请求太快,即每秒发送的请求太多
  3. 发送请求的速度太快,时间太长,或者滥用web服务
  4. 超过其他使用限制,例如,高程API中每个请求的点数。 超出使用限制 如果您超过使用限制,您将得到一个OVER_QUERY_LIMIT状态代码作为响应

这意味着web服务将停止提供正常响应,并切换到仅返回超过查询限制的状态代码,直到再次允许更多使用。这种情况可能发生:

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

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

相关问题 更多 >