我正在使用Android版Google Map的图块叠加功能来显示由第三方服务提供的自定义地图图块。
我的问题是,当用户缩放地图并切换到下一个缩放级别时,已经可见的图块消失了,然后触发了我的getTile()
实现的TileProvider
方法。这会导致我的地图视图不愉快地闪烁,并导致用户只能看到默认地图的时刻。
标准Google Map行为将缩放并“放大”当前可见的图块,直到加载新的图块。有什么办法可以使用图块覆盖创建相同的效果?我知道“过度缩放”的图块可能会模糊,但这对我而言是可以的。
答案 0 :(得分:0)
更改缩放级别后,删除自定义图块是默认的Android GoogleMap行为。要“隐藏”它(当仍在缩放±1级的图块仍在下载时显示上一张地图),您可以:
1)使用当前地图视图的屏幕快照创建GroundOverlay
。您可以在this问题的DiscDev问题的答案中喜欢的Google地图的屏幕快照,并在下载图块时将其删除;
2)创建自定义视图,以扩展MapView
类,就像在this答案中一样,并以覆盖的dispatchDraw()
方法显示您想要的任何内容;
3)您可以在ImageView
上设置MapView
,并在更改缩放比例和加载新图块的同时在屏幕上显示截图。并且,如有必要,您可以将点击事件从ImageView
转换为MapView
,依此类推。
我更喜欢p.2-创建基于MapView
的自定义视图,覆盖dispatchDraw()
并在加载新地图时显示其中的临时地图。