5

我有一个 HTML (phonegap) 应用程序,它使用 Google Maps API 来显示带有标记的地图。我希望这个应用程序可以离线使用。我知道谷歌地图图块不能离线使用(因为它的许可证)。但是,我想要做的是使用没有瓷砖的地图界面。

在线时 -> 显示图块和标记。

离线时 -> 仅显示标记。

不过谷歌地图的js加载比较复杂,我也没办法缓存。

谢谢。

4

2 回答 2

6

不允许缓存 google maps 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 和定位。如果您需要实现拖动和缩放 - 使用画布或其他一些技术会更困难但并非不可能。但话虽如此,让应用程序保持在线会更容易,我们都有互联网 :) ?当我们考虑到谷歌地图用户界面也会随着时间的推移而改变的事实时,比如在他们即将推出的版本中,制作一对一匹配的虚拟离线用户界面与谷歌地图将是一个非常痛苦的过程。

于 2013-05-31T17:01:12.477 回答
0

您可以改用 OpenStreetMaps,它可以离线使用:http ://wiki.openstreetmap.org/wiki/Offline_Openstreetmap

于 2013-05-31T18:13:28.227 回答