【问题标题】:Loading google maps outside of display area在显示区域外加载谷歌地图
【发布时间】:2019-06-11 07:46:46
【问题描述】:

我在我的 android 应用程序中使用谷歌地图来显示用户的当前位置。当用户位置发生变化时,我正在使用“animateCamera”api 来移动地图。

问题: 当用户以超过 30 公里/小时的速度移动或互联网连接不佳时,移动地图新区域时不会立即加载,仅显示灰色瓷砖。

请帮助我实现以下任何解决方案。

  1. 如何在显示当前位置的同时加载地图的附近区域(目前地图片段仅加载到手机的显示区域)。
    (或)

  2. 下载当前位置半径 1 公里的离线地图。

提前致谢。

【问题讨论】:

    标签: android google-maps google-maps-android-api-2


    【解决方案1】:

    您可以将Tile Overlays 与Url 一起用于平铺http://mt1.google.com/vt/lyrs=[MAP_KIND]&x=[TILE_X]&y=[TILE_Y]&z=[ZOOM_LEVEL] 例如:

    http://mt1.google.com/vt/lyrs=m&x=1465&y=949&z=11

    用于获取地图图块并创建缓存。但请仔细阅读 p。 Google Maps APIs Terms of Service 的 10.5.d(和其他):

    b) 没有缓存或存储。您不会预取、缓存、索引或 存储要在服务之外使用的任何内容,除非您可以 仅出于改进目的而存储有限数量的内容 由于网络延迟,您的 Maps API 实施的性能 (并且不是为了阻止 Google 准确跟踪 使用),并且只有在这样的存储:

    我。是临时的(在任何情况下都不会超过 30 个日历日);

    二。是安全的;

    三。不操纵或聚合内容或服务的任何部分;和

    四。不会以任何方式修改归属。

    【讨论】:

    • 感谢您的解决方案,但是当用户在车辆中快速移动时如何应用瓷砖,如何获取 tile_x 和 tile_y 的值?
    • @Vignesh 获取用户移动方向并提前下载图块。您可以通过 thisthat 或许多其他示例计算平铺坐标(例如,this 用于 Bing,但它具有相同的坐标系)。
    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多