11

Google 地图组件 (com.google.android.gms.maps.GoogleMap) 允许渲染自定义图块(OpenStreetMap 或其他)。这些图块可以在设备上并且可以离线使用,这就是我通过扩展 TileProvider 所做的。与以下内容一起执行此操作:

mMap.setMapType(GoogleMap.MAP_TYPE_NONE);

我没有从谷歌地图服务器中提取任何数据,并且可以合理地预期该组件在没有互联网连接的情况下也能正常工作。(我在此强调,我并不是要缓存 Google 的数据;我正在使用独立于 Google 地图服务器的离线图块。)

我以为一切都很好,直到我意识到如果地图组件在第一次执行时设备处于脱机状态,它将无法工作。在这种情况下,我会收到一条消息:

加载地图失败。无法联系谷歌服务器

我想这背后的原因是谷歌的 API 密钥需要我的应用程序进行身份验证才能允许组件执行。

谁能确认这是正确的?我真正想确定的是,只要该组件在线执行一次,之后它就可以正常运行。我必须确保不存在需要组件稍后重新进行身份验证的超时问题,这基本上会使我的应用程序无用。这将需要我转向其他一些组件(例如 OS Android)。

对此的任何说明将不胜感激。即使被指向我希望从谷歌开发人员那里得到回复的渠道也会很有用。

谢谢

4

1 回答 1

8

从 Google Play Services APK 的 3.0.27 开始,该问题已修复,只需联系服务器一次。您每次都会在 logcat 中看到错误,但它会起作用。

更多信息在这里: http ://code.google.com/p/gmaps-api-issues/issues/detail?id=4817

在这里: http ://code.google.com/p/gmaps-api-issues/issues/detail?id=5017

于 2013-04-17T16:51:15.070 回答