我在Android Google Map中有一个图块叠加层。一切正常。但是当我放大时,所有图块都消失了,然后下载了新图块,并且仅在1-2秒(下载新图块)后,地图才显示它们。因此,地图一段时间未显示图块。只有下载新的图块时,才可以更新图块吗?
我使用基本的UrlTileProvider和Aeris Overlay地图。
答案 0 :(得分:0)
无论如何,您可以download each tile as image使用例如Picasso库(或单独的Thread
或AsyncTask
)到本地内部或外部存储,并确定“所有新图块“手动”下载事件(例如,在毕加索的每个public void onSuccess()
上或protected void onPostExecute()
的{{1}}上或AsyncTask
的{{1}}上,增加下载的切片计数器,等待等于所有图块的数量),然后使用TileProvider
来下载图块本地存储,就像在this的Alex Vasilkov答案中一样。
更新
用于显示仍在下载用于+1级缩放的图块时的上一张地图,可以使用当前地图视图的屏幕快照创建GroundOverlay
。您可以在this问题的DiscDev问题的答案中喜欢的Google地图的屏幕截图
更新#2
有几种方法可以解决您的问题:1)您可以创建自定义视图,以扩展public void run()
类,就像在this答案中一样,并以覆盖Thread
方法显示您想要的内容或2 ),您可以在MapView
上设置dispatchDraw()
,并在更改缩放和加载新图块的同时在屏幕上显示截图。并且,如有必要,您可以将点击事件从ImageView
转换为MapView
,依此类推。
我更喜欢第1页-创建基于ImageView
的自定义视图,覆盖MapView
并在加载新地图时在其中显示临时地图。