我有一个HTML(phonegap)应用程序,它使用Google Maps API显示带有标记的地图。我希望这个应用程序可以脱机使用。我知道谷歌地图图块不能脱机使用(因为它的许可证)。但是,我想要做的是使用没有瓷砖的地图界面。
在线时 - >瓷砖和标记显示。
离线时 - >只显示标记。
然而,谷歌地图的js加载很复杂,我还没有设法缓存它。
感谢。
答案 0 :(得分:6)
缓存谷歌地图javascript 是不允许的,这是因为他们的支付系统是基于用户加载他们的javascript API的次数。一次页面刷新等于一次谷歌地图API调用,根据您所签订的合同类型,您刚刚从已购买的API请求总数中丢失了-1。
如何跟踪和报告Google Maps API for Business使用情况?
将Google Maps JavaScript API单次加载到页面中。该 每次使用API的页面都会重新加载JavaScript API 重新加载。用户与地图的互动(例如平移,缩放, 更改地图类型)不会生成更多页面视图。但请注意 如果API即使加载到页面中,也会生成页面视图 然后,API不会用于显示地图。
请参阅https://developers.google.com/maps/documentation/business/faq#pageview
您当然可以联系谷歌并尝试根据您的需求提出量身定制的商业解决方案。如果您直接联系他们,我不能100%确定他们提供什么样的东西。但是,虽然您的请求有些不可能填写,因为这些UI生成代码也位于您需要的Google Maps API JavaScript中。
所以我建议如果你在离线时只需要谷歌地图界面,花一点时间实现与HTML / CSS /(和一些JS)类似的东西..你可以在画布上绘制的标记或使用普通的img和定位。如果你需要实现拖动和缩放 - 使用画布或其他一些技术会有点困难但并非不可能。但是,据说保持应用程序在线更容易,我们都有互联网:)?当我们考虑谷歌地图用户界面也会随着时间的推移而改变时,制作1on1匹配虚拟离线用户界面对谷歌地图将是非常痛苦的过程。
答案 1 :(得分:0)
您可以使用OpenStreetMaps,它可以脱机使用:http://wiki.openstreetmap.org/wiki/Offline_Openstreetmap