用于 android 的 Google MAPs API 限制 2500 个请求/天是每个客户端设备还是每个应用程序密钥?

Posted

技术标签:

【中文标题】用于 android 的 Google MAPs API 限制 2500 个请求/天是每个客户端设备还是每个应用程序密钥?【英文标题】:Google MAPs API for android limit 2500 requests/day is per client device or per application key? 【发布时间】:2013-01-19 18:27:06 【问题描述】:

抱歉,我发现了类似的问题 - 但没有找到答案:只有讨论。我正在开发旨在在地图上放置点和绘制路线的 android 应用程序。如果谷歌限制使用他们的地图 2500 r/day 每个键 - 没有办法使用它,因为即使你的应用程序曾经被出售 - 你需要每月为每额外 1000 个 req/day 支付费用。尤其是免费应用不清楚:1年后每月100000次下载要花多少钱?请分享您的经验(不是您的假设)。谢谢。

【问题讨论】:

您对此有什么解决方案吗?我有同样的问题。 :( 很遗憾,什么都没有…… 【参考方案1】:

尚不完全清楚您正在寻找哪个限制,因为“地图的使用”可以遵循许多不同的地图 API 类别。对于仅显示地图,您可以使用Google Maps Android API v2 在移动应用程序上显示无限地图而没有使用限制——支持文档来自FAQ。

地图 API 使用限制仅适用于以下地图 API 服务:

Google Maps javascript API v2
Google Maps JavaScript API v3
Google Maps API for Flash
Google Maps Image APIs:
    Google Static Maps API
    Google Street View Image API

请注意,Google Maps Android API v2没有出现在列表中,因此不受使用限制。

但是,您的问题似乎是在询问路由,而不是地图。如果您需要路线,则需要使用Google Directions API,它不属于Google Maps Android API v2,并受其自己的usage limits 约束。具体来说,每个键 每天有 2500 个请求。由于方向与移动应用程序无关,因此它没有设备的概念。

总而言之,如果您想显示带有您自己生成的路线的地图,则没有任何限制。如果你需要谷歌给你路线,你每天只能做 2500 次路线请求。如果您需要更多,您必须获得 Google Maps API for Business 帐户或寻找其他路线解决方案。

【讨论】:

我不清楚 Google Directions API 请求如何限制每个密钥,而密钥不是请求的一部分:maps.googleapis.com/maps/api/directions/output?parameters。从逻辑上讲,限制是针对每个 IP 的,即设备。您能否澄清这一点? 来自directions API website:All Directions API 应用程序应使用 API 密钥。在您的请求中包含一个密钥:1) 允许您在 API 控制台中监控应用程序的 API 使用情况。 2) 启用每个密钥而不是每个 IP 地址的配额限制。 3) 确保 Google 可以在必要时就您的申请与您联系。 Directions API 使用 API 密钥来识别您的应用程序。 API 密钥通过 Google API 控制台进行管理【参考方案2】:

来自常见问题解答谷歌地图 API: “Google 地球 API 以及适用于 Android 和 ios 等移动平台的原生 Maps API 不受影响。使用 Google 地图的嵌入功能以及其他提供嵌入功能(包括地图)的 Google 产品不受影响受到这些限制的影响。”

【讨论】:

【参考方案3】:
use of the Google Places API for Android request based on Application key based. 
After 150000 request per day whoever using your application "that means the "key" 
which you given for google places api request" will get a response error
from google api as "USAGE_LIMIT_EXCEEDED" like   

USAGE_LIMIT_EXCEEDED

while giving search text in search view(to check the response debug and see
the Exception occurs while sending request to place api) , but it wont't be 
visible to the user who uses you app. It will simply shows no 
movement in markers and no auto suggestion will come. For that you want to use   

Uplift

for unlimited request. but it contains lots of restrictions by google. They
will track your app closely. If any violations of google policy happens means 
you app will get banned from GooglePlay Markert. so make sure in that you
app does't contains any violation policy before using this.

【讨论】:

那是 Google Places API,不是 Google Maps API。【参考方案4】:

Google 已共享 API 许可结构。请参阅下面的链接。 https://developers.google.com/maps/faq#usage_pricing

【讨论】:

他不是在谈论那些 API。他指的是 Google Maps for Android API v2。 我很清楚这种区别。奇怪的是,谷歌的商业许可似乎没有做出这种区分。 @moxin - 我找到了不同的答案:例如这里link 答案是Android 完全没有限制......问题是没有一个人的答案经验或谷歌的官方回答。另一个至关重要的问题:如果存在限制,它是每个设备(这绰绰有余)或每个密钥(这意味着这个库完全没用)。 请避免仅链接的答案,因为链接可能会失效。

以上是关于用于 android 的 Google MAPs API 限制 2500 个请求/天是每个客户端设备还是每个应用程序密钥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Maps API 的 Android 应用离线模式

Google Maps是否仅将我的IP用于地理定位?

在Google Maps android上放置点击监听器

使用 Google Maps Android API v2 在两点之间绘制路径

如何修复 Google Maps Android v2 上的语言环境问题?

在 Android Studio 中使用 Gradle 管理 Google Maps API 密钥