缩放后保持可见的自定义Google Map叠加层

时间:2019-01-29 10:29:16

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

我正在使用Android版Google Map的图块叠加功能来显示由第三方服务提供的自定义地图图块。

我的问题是,当用户缩放地图并切换到下一个缩放级别时,已经可见的图块消失了,然后触发了我的getTile()实现的TileProvider方法。这会导致我的地图视图不愉快地闪烁,并导致用户只能看到默认地图的时刻。

标准Google Map行为将缩放并“放大”当前可见的图块,直到加载新的图块。有什么办法可以使用图块覆盖创建相同的效果?我知道“过度缩放”的图块可能会模糊,但这对我而言是可以的。

1 个答案:

答案 0 :(得分:0)

更改缩放级别后,删除自定义图块是默认的Android GoogleMap行为。要“隐藏”它(当仍在缩放±1级的图块仍在下载时显示上一张地图),您可以:

1)使用当前地图视图的屏幕快照创建GroundOverlay。您可以在this问题的DiscDev问题的答案中喜欢的Google地图的屏幕快照,并在下载图块时将其删除;

2)创建自定义视图,以扩展MapView类,就像在this答案中一样,并以覆盖的dispatchDraw()方法显示您想要的任何内容;

3)您可以在ImageView上设置MapView,并在更改缩放比例和加载新图块的同时在屏幕上显示截图。并且,如有必要,您可以将点击事件从ImageView转换为MapView,依此类推。

我更喜欢p.2-创建基于MapView的自定义视图,覆盖dispatchDraw()并在加载新地图时显示其中的临时地图。