【发布时间】:2020-03-09 00:02:14
【问题描述】:
我正在使用osmdroid 6.1.2版在android下显示地图应用程序(在android版本从4.0.3、7.0、8.0到9.0的不同设备上测试,效果没有区别)。
只要我只使用一个主层(例如 MAPNIK),一切都可以。但是当我添加一个覆盖(例如 PUBLIC_TRANSPORT)时,一些地图图块(哪些是不可预测的)显示闪烁的内容。事实上,这些瓦片的地图图层每秒会被不同的旧内容替换几次,可能来自缓存。背景地图一直保持稳定,但叠加层却在暴动。
即使在所有图块完全下载后,此效果仍然存在 - 使用 TileStates.getUpToDate(); 进行检查
mapView.invalidate();也无济于事。
代码 sn-ps(为了更好的概览而简化):
// 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" />
【问题讨论】:
标签: android overlay tiles osmdroid flicker