gpt4 book ai didi

google-maps-api-3 - 谷歌地图 - 缓存 - 方法

转载 作者:行者123 更新时间:2023-12-03 23:39:34 24 4
gpt4 key购买 nike

行!所以我就这个问题与谷歌代表谈过,但是由于我不是企业级的,他不能将我推向技术支持,并建议我使用 SO 来回答。这是问题...
在谷歌地图条款中,它规定了以下内容:

(b) No Pre-Fetching, Caching, or Storage of Content. You must not pre-fetch, cache, or storeany Content, except that you may store: (i) limited amounts of Content for the purpose ofimproving the performance of your Maps API Implementation if you do so temporarily (and inno event for more than 30 calendar days), securely, and in a manner that does not permituse of the Content outside of the Service; and (ii) any content identifier or key thatthe Maps APIs Documentation specifically permits you to store. For example, you must notuse the Content to create an independent database of "places" or other local listingsinformation.


这使我最初相信谷歌不会允许缓存任何类型的信息。但是,然后我阅读了以下内容:
何时使用客户端地理编码

The basic answer is "almost always." As geocoding limits are per user session, there is no risk that your application will reach a global limit as your userbase grows. Client-side geocoding will not face a quota limit unless you perform a batch of geocoding requests within a user session. Therefore, running client-side geocoding, you generally don't have to worry about your quota.

Two basic architectures for client-side geocoding exist.

Run the geocoding and display entirely in the browser. For instance, the user enters an address on your page. Your application geocodes it. Then your page uses the geocode to create a marker on the map. Or your app does some simple analysis using the geocode. No data is sent to your server. This reduces load on your server, but doesn't give you any sense of what your users are doing.

Run the geocode in the browser and then send it to the server. For instance, the user enters an address. Your application geocodes it in the browser. The app then sends the data to your server. The server responds with some data, such as nearby points of interest. This allows you to customize a response based on your own data, and also to cache the geocode if you want. This cache allows you to optimize even more. You can even query the server with the address, see if you have a recently cached geocode for it, and if you do, use that. If you don't, then return no result to the browser, and let it geocode the result and send it back to the server to for caching.


所以一方面说你不能缓存,另一方面告诉你,你应该。它指出的另一个解决方案是尽可能始终使用客户端,但这也成为灰色区域,因为两个示例都表明您必须有用户输入数据。如果 jquery 从 div 或 span 读取数据然后对信息进行地理编码怎么办?用户实际上不会完成地理编码,但它仍然是在客户端完成的?我正在尝试创建一个站点,其中包含用户生成的大量事件,并且该站点可能会加载得很好,因此我正在尝试确定能够执行此操作的最佳实践。谷歌在这里建议,所以在你说这是“离题”之前,请注意,这是他们让我发帖的地方。
任何反馈将不胜感激。

最佳答案

第一个引号根本没有明确禁止缓存数据。关于可以缓存多少(明确是“有限数量”的数字是多少?)尚不明确,但它并不禁止缓存。

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

关于用户交互 - 如果您的用户明确输入一个页面,并期望他们会看到地理编码信息,我会假设这将实现“用户交互”。

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

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

然后每天午夜运行一个 cronjob,它会检查每条包含超过 25 天的缓存数据的记录并将其删除。

实际上,我缓存的标记位置不到 10%(每分钟更新 20 多个标记,但每天可能在 3-5 个标记上运行报告,并且每 5 个点只有一次地理编码数据)。

关于google-maps-api-3 - 谷歌地图 - 缓存 - 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com