是否可以在颤振应用程序中缓存谷歌地图?

Posted

技术标签:

【中文标题】是否可以在颤振应用程序中缓存谷歌地图?【英文标题】:Is it possible to cache google map in a flutter app? 【发布时间】:2020-12-13 00:20:52 【问题描述】:

我正在制作一个颤振应用程序,我需要其中包含谷歌地图,但每次我重新打开应用程序时它都会重新加载我想知道是否有办法在我的应用程序中缓存谷歌地图以防止重新加载

【问题讨论】:

欢迎来到 Stack Overflow!这个问题是相当开放的。您能否提供更多关于您迄今为止尝试过的内容或您编写的任何代码的信息? 在谷歌地图的应用程序中选择一个位置后,如果您退出应用程序并再次返回,地图不会重新加载实际上该位置及其区域似乎缓存在我想要的应用程序中在我的颤振应用程序中实现此功能,但我不知道是否有可能如果是我该怎么做? 为什么需要防止重新加载?缓存谷歌地图可能违反了他们的Terms of Service。 【参考方案1】:

一种可能的解决方法是使用Maps Static API。它允许您在地图上拥有某个区域的图像,无需加载整个地图即可下载。

根据jabamataro 的评论,缓存违反Google Maps policy 3.2.3(b)。所以,没有缓存

使用示例:

static String mapPreviewImage(double latitude, double longitude) 
    return 'https://maps.googleapis.com/maps/api/staticmap?center=&$latitude,$longitude&zoom=16&size=600x300&maptype=roadmap&markers=color:red%7Clabel:A%7C$latitude,$longitude&key=$GOOGLE_API_KEY';
  

因此,您可以使用返回的字符串作为您的 http 请求的 URL

【讨论】:

我认为下载和缓存 Google Maps 内容可能违反了 Google Maps Platform 服务条款,特别是在第 3.2.3 (b) 项无缓存:cloud.google.com/maps-platform/terms/#3.-license。【参考方案2】:

正如@jabamataro 所指出的,下载和缓存可能违反Google Maps' ToS(截至 2021 年 10 月 21 日)

(a) 无刮擦。客户不得导出、提取或以其他方式抓取 Google 地图内容以在服务之外使用。例如,客户不得:(i) 在服务之外预取、索引、存储、转发或重新托管 Google 地图内容; (ii) 批量下载谷歌地图图块、街景图像、地理编码、方向、距离矩阵结果、道路信息、地点信息、高程值和时区详细信息; (iii) 复制并保存企业名称、地址或用户评论;或 (iv) 将 Google 地图内容与文字转语音服务结合使用。

【讨论】:

以上是关于是否可以在颤振应用程序中缓存谷歌地图?的主要内容,如果未能解决你的问题,请参考以下文章

我的颤振资产图像没有被用作谷歌地图的标记图标

如何在颤振中与谷歌地图集成?

颤振谷歌地图图像标记不会出现在中心

Flutter 中的谷歌地图导航

在发布模式下颤振谷歌地图不起作用

谷歌地图颤振中的半径单位是啥