osmdroid显示闪烁的覆盖图块

时间:2019-11-24 15:54:25

标签: android overlay tiles osmdroid flicker

我正在使用osmdroid版本6.1.2在android下显示地图应用程序(已在具有4.0.3、7.0、8.0到9.0的android版本的不同设备上进行了测试,关于效果没有差异)。

只要我只使用一个主层(例如MAPNIK),一切就可以了。但是,当我添加一个叠加层(例如PUBLIC_TRANSPORT)时,某些地图图块(其中一些是不可预测的)显示的是闪烁的内容。实际上,这些图块的地图层每秒可能被不同的旧内容(可能来自缓存)替换了几次。背景地图始终保持稳定,但是覆盖层正在暴动。

即使完全下载了所有图块,该效果仍然存在-使用TileStates.getUpToDate();

mapView.invalidate();也无济于事。

代码段(为了更好的概述而进行了简化):

// background map
MapView mapView = (MapView) findViewById(R.id.mapview);
MapTileSource mapTileSource = new MapTileSource(this);
mapView.setTileSource(TileSourceFactory.MAPNIK);

// overlay map
ITileSource iTileSource = TileSourceFactory.PUBLIC_TRANSPORT;
MapTileProviderBasic provider = new MapTileProviderBasic(getApplicationContext());
provider.setTileSource(iTileSource);
TilesOverlay tilesOverlay = new TilesOverlay(provider, this.getBaseContext());
tilesOverlay.setLoadingBackgroundColor(Color.TRANSPARENT);
mapView.getOverlays().add(tilesOverlay);

并在layout.xml

<org.osmdroid.views.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

1 个答案:

答案 0 :(得分:0)

此错误已由osmdroid团队从6.1.6版开始修复。参见here