谷歌地图-缓存-方法



好!因此,我已经就这个问题与谷歌的一位代表进行了交谈,但由于我不是企业级的,他无法将我推向技术支持,并建议我使用So来获得答案。问题是。。。

在谷歌地图条款中,它声明如下:

(b( 没有内容的预取、缓存或存储。不得预取、缓存或存储任何内容,除非您可以存储:(i(用于改进Maps API实现的性能(如果您暂时这样做的话(30个日历日内无活动(,安全且不允许在服务之外使用内容;以及(ii(任何内容标识符或密钥地图API文档专门允许您进行存储。例如,你不能使用该内容创建一个独立的数据库;地方;或其他本地列表信息

这让我最初相信谷歌不会允许缓存任何类型的信息。然而,后来我读到了以下内容:

何时使用客户端地理编码

基本答案是";几乎总是"由于地理编码限制是针对每个用户会话的,因此随着用户群的增长,应用程序不会有达到全局限制的风险。客户端地理编码不会面临配额限制,除非您在用户会话中执行一批地理编码请求。因此,运行客户端地理编码时,通常不必担心配额问题。

存在两种用于客户端地理编码的基本体系结构。

运行地理编码并完全在浏览器中显示。例如,用户在您的页面上输入一个地址。你的应用程序对其进行地理编码。然后你的页面使用地理编码在地图上创建一个标记。或者你的应用程序使用地理代码进行一些简单的分析。没有数据发送到您的服务器。这减少了服务器上的负载,但不会让您了解用户在做什么。

在浏览器中运行地理代码,然后将其发送到服务器。例如,用户输入一个地址。您的应用程序在浏览器中对其进行地理编码。然后应用程序将数据发送到您的服务器。服务器使用一些数据进行响应,例如附近的兴趣点。这允许您根据自己的数据自定义响应,如果需要,还可以缓存地理代码。此缓存允许您进行更多优化。你甚至可以用地址查询服务器,看看你是否有最近缓存的地理代码,如果有,就使用它。如果没有,则不向浏览器返回任何结果,并让浏览器对结果进行地理编码,然后将其发送回服务器进行缓存。

所以一方说你不能缓存,另一方告诉你,你应该缓存。它指出的另一个解决方案是在可能的情况下始终使用客户端,但这也成为了一个灰色地带,因为这两个示例都指出必须有用户输入数据。如果jquery从div或span读取数据,然后对信息进行地理编码,该怎么办?用户实际上不会进行地理编码,但它仍然是在客户端进行的?我正试图创建一个包含用户生成的一系列事件的网站,这个网站可能会加载得很满,所以我正在努力确定能够做到这一点的最佳实践。谷歌在这里建议,所以在你去说这是";偏离主题";请注意,这是他们让我张贴的地方。

如有任何反馈,我们将不胜感激。

第一个引号根本没有明确禁止缓存数据。关于可以缓存的数量,它是不明确的(明确地说,什么数字是"限量"?(,但它并没有禁止缓存。

如果数据有助于提高网站的性能,您可以缓存数据,只要您保留数据的时间不超过30天,并且不以任何方式将其提供给除最初检索数据的服务之外的任何其他服务。

关于用户交互——如果你的用户明确地进入一个页面,期望他们会看到地理编码的信息,我认为这将实现"用户交互"。

以我去年参与的一个项目为例,我将其设置为执行以下操作:-在地图上显示标记-如果用户点击了一个标记,他们会看到一个弹出窗口,其中包含缓存中的数据(如果可用(,否则将执行地理编码,返回的信息将与缓存的日期/时间一起缓存。

网站的另一个页面显示了这些标记的历史,每天间隔5分钟。如果存在缓存的数据(如前一部分中单击地图标记(,则会显示该数据,否则将执行地理编码,并像以前一样缓存数据。用户点击运行报告(在我看来(足够"用户交互",不算预取,因为用户必须手动选择一个时间段才能显示报告。

然后,一个cronjob每天午夜运行,它会遍历每个缓存了25天以上数据的记录,并将其删除

事实上,我缓存的标记位置远低于显示的10%(每分钟更新20多个标记,但报告每天可能在3-5个标记上运行,每5个点只对数据进行地理编码(。

最新更新