【问题标题】:Google Maps v2 Android custom tiles wmsGoogle Maps v2 Android 自定义图块 wms
【发布时间】:2013-04-12 16:13:46
【问题描述】:

我正在使用 Google Maps v2 显示来自 wms 的图块。瓷砖显示正确,到目前为止一切都很好。现在我需要一个缓存功能。我正在使用此处提供的代码:http://www.azavea.com/blogs/labs/2013/01/wms-on-android/

默认情况下,Google 地图会缓存图块,但它不会缓存所有内容,图块不会以非常高和低的缩放级别(重新下载)加载,并且只有“中间”的图块会从缓存中加载。主要问题是当我关闭应用程序并重新打开它时,谷歌地图不会从缓存中加载图块,而是重新下载所有内容。不知道为什么,缓存没有清除。

如果有人对“修复”谷歌地图中的图块缓存有任何想法,那就太好了。如果没有,如何从链接中的示例中获取下载的磁贴?

【问题讨论】:

  • 我也指的是同一个网站。但是 getTileUrl(int x, int y, int zoom) 没有被调用你知道原因吗?

标签: android google-maps caching wms


【解决方案1】:

我认为您必须编写自己的下载和缓存算法并实现TileProvider,而不是像示例中那样扩展方便的UrlTileProvider

【讨论】:

  • 感谢您的回答。我创建了自己的下载器和缓存。经过一些测试,我意识到我需要使用平铺图像的异步下载。我试图在没有运气的情况下做到这一点。如何在 getTile 中返回从异步下载的平铺图像? (这有什么意义)有什么建议吗?
  • 您不需要创建自己的线程/异步任务。 TileProvider "调用此接口中的方法可能来自多个线程,因此此接口的实现必须是线程安全的。"
  • 好的,谢谢。我使用一个简单的 HttpURLConnection 下载图像并在 getTile 中返回字节数组。使用 getTileUrl 时,切片的下载和显示速度比使用 getTile 和我自己的下载器更快(无缓存)。差异可能高达 10+ 秒。对这个也有任何想法吗?
  • 不是没有看到代码。我建议创建一个新问题,有人会回答。
猜你喜欢
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 2011-06-03
  • 1970-01-01
相关资源
最近更新 更多