好的!所以我已经和谷歌代表谈过这个问题,但是由于我不是企业级的,他不能把我推给技术支持,并建议我使用 SO 来回答。这是问题...
在谷歌地图条款中,它规定了以下内容:
(b) 不得预取、缓存或存储内容。您不得预取、缓存或存储任何内容,除非您可以存储:(i) 有限数量的内容,以提高 Maps API 实施的性能,前提是您临时这样做(在任何情况下都不得超过 30 个日历日)、安全且不允许在服务之外使用内容的方式;(ii) Maps API 文档明确允许您存储的任何内容标识符或密钥。例如,您不得使用内容创建独立的“地点”数据库或其他本地列表信息。
这使我最初相信谷歌不会允许缓存任何类型的信息。但是,然后我阅读了以下内容:
何时使用客户端地理编码
基本答案是“几乎总是”。由于地理编码限制是针对每个用户会话的,因此您的应用程序不会随着用户群的增长而达到全局限制。除非您在用户会话中执行一批地理编码请求,否则客户端地理编码不会面临配额限制。因此,运行客户端地理编码,您通常不必担心您的配额。
存在两种用于客户端地理编码的基本架构。
运行地理编码并完全在浏览器中显示。例如,用户在您的页面上输入地址。您的应用程序对其进行地理编码。然后,您的页面使用地理编码在地图上创建标记。或者您的应用程序使用地理编码进行一些简单的分析。没有数据发送到您的服务器。这会减少服务器上的负载,但不会让您了解用户在做什么。
在浏览器中运行地理编码,然后将其发送到服务器。例如,用户输入地址。您的应用程序在浏览器中对其进行地理编码。然后应用程序将数据发送到您的服务器。服务器响应一些数据,例如附近的兴趣点。这允许您根据自己的数据自定义响应,如果需要,还可以缓存地理编码。此缓存允许您进行更多优化。您甚至可以使用地址查询服务器,查看您是否有最近缓存的地理编码,如果有,请使用它。如果不这样做,则不向浏览器返回任何结果,并让它对结果进行地理编码并将其发送回服务器以进行缓存。
所以一方面说你不能缓存,另一方面告诉你,你应该。它指出的另一个解决方案是尽可能始终使用客户端,但这也成为灰色区域,因为两个示例都表明您必须有用户输入数据。如果 jquery 从 div 或 span 读取数据然后对信息进行地理编码怎么办?用户实际上不会完成地理编码,但它仍然是在客户端完成的?我正在尝试创建一个站点,其中包含用户生成的大量事件,并且该站点可能会加载得很好,因此我正在尝试确定能够执行此操作的最佳实践。谷歌在这里建议,所以在你说这是“离题”之前,请注意,这是他们让我发帖的地方。
任何反馈将不胜感激。