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

时间:2014-03-02 05:24:32

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

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

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

地图设置为terrain-type:

 map.setMapType(MAP_TYPE_TERRAIN);

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

之前是否还有其他人看到此行为?

enter image description here

1 个答案:

答案 0 :(得分:3)

编辑:问题已在google-play-services v16中修复。

可悲的是,这是一个Known Problem,我希望它很快就能解决;话虽如此,有multiple issues with tiles in maps v2

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

TileOverlay docs说:

  

TileProvider 提供图块叠加层中使用的图像。您必须在将瓷砖提供程序添加到地图之前指定它。一旦添加了tile提供程序,就无法更改它;但是,您可以修改切片提供程序的行为以返回特定坐标的不同图像。如果磁贴提供程序提供的磁贴发生更改,则必须在之后调用 clearTileCache()以确保不再呈现先前的磁贴。

另一个选择,如果可行,则使用 OpenStreetMap 作为地图的叠加/来源。