我有一个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没有任何区别,闪烁仍在继续。
之前是否还有其他人看到此行为?
答案 0 :(得分:3)
编辑:问题已在google-play-services v16中修复。
可悲的是,这是一个Known Problem,我希望它很快就能解决;话虽如此,有multiple issues with tiles in maps v2。
根据此问题,您可以通过手动设置TileOverlay
并使用clearTileCache()
来避免闪烁。这里明确的警告是,您在整个时刻都会丢失您拥有的所有数据,并且可能会看到空白,因为清除缓存是在现场,并且不会考虑特定部分或仅在新提取时清除。
TileOverlay docs说:
TileProvider 提供图块叠加层中使用的图像。您必须在将瓷砖提供程序添加到地图之前指定它。一旦添加了tile提供程序,就无法更改它;但是,您可以修改切片提供程序的行为以返回特定坐标的不同图像。如果磁贴提供程序提供的磁贴发生更改,则必须在之后调用 clearTileCache()以确保不再呈现先前的磁贴。
另一个选择,如果可行,则使用 OpenStreetMap 作为地图的叠加/来源。