Android Google Maps Tile Overlay更新缩放

时间:2018-10-16 11:00:08

标签: android google-maps

我在Android Google Map中有一个图块叠加层。一切正常。但是当我放大时,所有图块都消失了,然后下载了新图块,并且仅在1-2秒(下载新图块)后,地图才显示它们。因此,地图一段时间未显示图块。只有下载新的图块时,才可以更新图块吗?

我使用基本的UrlTileProvider和Aeris Overlay地图。

enter image description here

1 个答案:

答案 0 :(得分:0)

无论如何,您可以download each tile as image使用例如Picasso库(或单独的ThreadAsyncTask)到本地内部或外部存储,并确定“所有新图块“手动”下载事件(例如,在毕加索的每个public void onSuccess()上或protected void onPostExecute()的{​​{1}}上或AsyncTask的{​​{1}}上,增加下载的切片计数器,等待等于所有图块的数量),然后使用TileProvider来下载图块本地存储,就像在thisAlex Vasilkov答案中一样。

更新

用于显示仍在下载用于+1级缩放的图块时的上一张地图,可以使用当前地图视图的屏幕快照创建GroundOverlay。您可以在this问题的DiscDev问题的答案中喜欢的Google地图的屏幕截图

更新#2

有几种方法可以解决您的问题:1)您可以创建自定义视图,以扩展public void run()类,就像在this答案中一样,并以覆盖Thread方法显示您想要的内容或2 ),您可以在MapView上设置dispatchDraw(),并在更改缩放和加载新图块的同时在屏幕上显示截图。并且,如有必要,您可以将点击事件从ImageView转换为MapView,依此类推。

我更喜欢第1页-创建基于ImageView的自定义视图,覆盖MapView并在加载新地图时在其中显示临时地图。