地图图块在地形和普通类型之间闪烁

ska*_*man 9 android google-maps google-play-services google-maps-android-api-2

我有一个Google Maps v2应用程序.在渲染过程中,地图图块在terrain-type和normal-type之间闪烁.您可以在下面的屏幕截图中看到磁贴边界.每个瓷砖似乎在两种类型之间闪烁,然后稳定在一种.

平移或缩放会再次引发整个闪烁.有些瓷砖似乎比其他瓷砖更容易出现闪烁,但它不可预测或不一致.

地图设置为terrain-type:

 map.setMapType(MAP_TYPE_TERRAIN);
Run Code Online (Sandbox Code Playgroud)

这种情况发生在我的Android 4.1手机和Android 4.4 Nexus 7上.我最近才注意到它,所以它可能在上次更新到Google Play服务(目前正在使用更新13)时悄悄进入.升级到更新15没有任何区别,闪烁继续.

有没有其他人之前看到这种行为?

在此输入图像描述

Ben*_*ein 3

编辑:自 google-play-services v16 起问题已得到解决。

遗憾的是,这是一个已知问题,我希望它可能很快就会得到解决;话虽如此, maps v2 中的图块存在多个问题。

根据此问题,您可以通过手动设置 aTileOverlay并使用clearTileCache()来避免闪烁。这里需要明确的警告是,您在整个时刻都会丢失拥有的全部数据,并且可能会看到空白,因为清除缓存是当场的,并且不会考虑特定部分或仅在新获取时清除。

TileOverlay文档指出:

TileProvider提供在图块叠加层中使用的图像。您必须在将图块添加到地图之前指定图块提供程序。磁贴提供商一旦添加就无法更改;但是,您可以修改图块提供程序的行为以返回特定坐标的不同图像。如果瓦片提供者提供的瓦片发生变化,您必须随后调用clearTileCache()以确保不再渲染之前的瓦片。

另一种选择(如果可行)是使用OpenStreetMap作为地图的覆盖层/源。