我计划使用ionic开发混合移动应用程序。我需要的功能之一是离线谷歌地图。有没有方法可以做到这一点?
我计划使用ionic开发混合移动应用程序。我需要的功能之一是离线谷歌地图。有没有方法可以做到这一点?
我无法或不想提供自己的地图瓦片确保您真正探索了选项,有些系统提供可用的地图瓦片(例如,请查看https://www.mapbox.com/)
好的,所以您真的不想执行我建议的操作。现在有哪些选项?JavaScript映射解决方案通常基于要查看的地图位置和缩放级别来呈现瓦片。这些瓷砖是从瓷砖提供商请求的。我不知道如何为Google准确实现此功能,您可能需要进行一些研究-我将尝试帮助您确定一个方向。会有请求从服务器获取瓦片。我检查了http://maps.google.com,尝试浏览地图时加载的图片:(示例(点击))。找出您情况下使用的网址,稍后我们将需要这些网址(只需检查浏览器控制台中的网络选项卡,查看滚动地图时进行了哪些请求)。当我们仅需要用户在某个区域离线工作时,我们可以使用服务工作者在在线时缓存这些请求的响应,并在离线时提供这些缓存。在此处阅读更多关于服务工作者的信息(点击此处)。
优点:对于您以前访问过的任何瓦片具有真正的离线地图功能(只要您的缓存没有溢出,这取决于服务工作者的实现方式以及支持服务工作者的浏览器/设备)。
缺点:不支持从未放入缓存的瓦片(也就是说:之前从未见过)。另一个缺点:这仅适用于支持服务工作者的设备。在您不关心用户使用“旧”设备或者您可以控制用户设备选择的情况下,这可能是一个选项。请注意,在此处使用Crosswalk能够减轻您的开发工作,因为您只需考虑一个浏览器运行时:但是,Crosswalk也不支持旧设备。
然而:对于需要在特定区域工作的人来说,这个解决方案可能很好。如果您或您的用户事先知道需要在哪里工作,您可以指导/帮助他们正确加载和缓存地图。