避免具有多个标记的自定义谷歌地图的地理编码限制
我创建了一个包含大约 150 个标记的自定义地图。在达到地理编码限制之前,它仅绘制大约 20 个左右。
我可以在代码中加入哪些内容以避免达到限制?
更新: 如何为每个请求添加一个时间延迟,比如 0.25 秒(或者我能做到的最低时间)?
我尝试了一些不同的建议,但我似乎无法让它们与我的代码一起使用,因此请任何示例都可以使用我的代码。
I've created a custom map with around 150 markers. It only plots around 20 or so before it hits the geocode limit.
What can I incorporate into my code to avoid hitting the limit?
UPDATE:
How can I add a time delay to each request say 0.25seconds (or whatever the lowest I can get away with)?
I've tried a few different suggestions but I can't seem to get them to work with my code so please could any examples use my code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因此,我认为与其在 for 循环中几乎立即发送所有请求,不如在地理编码返回结果时发送下一个结果。如果返回的结果是
OVER_QUERY_LIMIT
,请重新发送请求并增加延迟。我还没有找到产生最少OVER_QUERY_LIMIT
的最佳超时时间,但至少它会创建所有标记(对于有效地址)。在我的机器上大约需要 45 秒左右才能完成。So instead of sending all the requests almost instantly in a for-loop, I thought it might be better that when a geocode returns a result, to send the next one. If the result coming back is a
OVER_QUERY_LIMIT
, resend the request with an increase on the delay. I haven't found the sweet spot timeout that produces the fewestOVER_QUERY_LIMIT
's, but at least it will create all the markers (for valid addresses). It takes about 45 seconds or so to finish on my machine.我当然不是代码大师,但我没有使用超时,而是继续从函数内部调用该函数(我确信资源占用)。如果成功,我会迭代计数器,否则如果不成功,我会使用当前计数器值调用我的函数。按照这个速度,我可能会为我的 37 条折线(或标记,如果这就是您的绘图)循环 1000 次,但我相信它会尽快完成。这是一个例子 - 我首先将我的绘图函数 onclick 称为plot(0):
i'm certainly no codemaster, but instead of using a timeout i just keep calling the function from within the function (resource hog i'm sure). i iterate through my counter if i'm successful, otherwise i call my function with the current counter value if unsuccessful. at this rate, i may loop 1000 times for my 37 polylines (or markers if that's what your drawing), but i believe it will finish at the earliest time possible. here's an example - i first call my plot function onclick as plot(0):