我想在活动中并排使用两个地图片段,每个都有不同的片段。计划在左侧的地图上显示特定区域的概览,右侧的地图将放大到特定的点。在一个活动中使用两个osmdroid地图视图
时遇到的问题是,仅第一(左)地图片段被正确所示,第二(右)示出了一个在世界地图:
缩放没有在右边工作地图。
这里是我正在使用的代码的一部分:
private void initializeMap()
{
MapTileProviderBasic tileProviderOSM = new MapTileProviderBasic(getApplicationContext());
ITileSource tileSourceOSM = new XYTileSource("OpenFireMap", null, 1, 18, 256, ".png", new String[]{"http://openfiremap.org/hytiles/"});
tileProviderOSM.setTileSource(tileSourceOSM);
TilesOverlay tilesOverlayOSM = new TilesOverlay(tileProviderOSM, this.getBaseContext());
tilesOverlayOSM.setLoadingBackgroundColor(Color.TRANSPARENT);
OsmFragment frag = (OsmFragment) getFragmentManager().findFragmentById(R.id.osmMap);
osmMap = frag.getMap();
osmMap.setMultiTouchControls(true);
osmMap.getOverlays().add(tilesOverlayOSM);
MapTileProviderBasic tileProviderOSMDetail = new MapTileProviderBasic(getApplicationContext());
ITileSource tileSourceOSMDetail = new XYTileSource("OpenFireMap", null, 1, 18, 256, ".png", new String[]{"http://openfiremap.org/hytiles/"});
tileProviderOSMDetail.setTileSource(tileSourceOSMDetail);
TilesOverlay tilesOverlayOSMDetail = new TilesOverlay(tileProviderOSMDetail, this.getBaseContext());
tilesOverlayOSMDetail.setLoadingBackgroundColor(Color.TRANSPARENT);
OsmFragment fragDetail = (OsmFragment) getFragmentManager().findFragmentById(R.id.osmMapDetail);
osmMapDetail = fragDetail.getMap();
osmMapDetail.setMultiTouchControls(true);
osmMapDetail.getOverlays().add(tilesOverlayOSMDetail);
}
如果更改片段中的任一个到Google地图片段,所述osmdroid地图加载正确。
任何想法,为什么发生这种情况,我该如何解决它?我使用gradle(v5.6.4)的最新osmdroid版本(v5.6.4)
在此先感谢。
编辑: 我改变了变量declation,但它仍然不起作用。
感谢您的回答。我改变了代码来使用不同的TilesOverlay,但它没有改变任何东西。然后,我将每个变量都更改为两个地图的不同声明,但它也没有帮助。 还有其他建议吗? –