您好,我按照这个思路进行操作发生了一个事情,就是我点击影像地图的时候正常的,但是点击电子地图按钮时,两个图层都会显示:
下面是代码,以及图片:
//默认3d天地图
tiandidsInfo = new DatasourceConnectionInfo();
Log.d(ContentName.TAG,"使用server");
tiandidsInfo.setServer(TIANDI_URL);
tiandidsInfo.setEngineType(EngineType.OGC);
tiandidsInfo.setAlias("tiandi");
tiandidsInfo.setDriver("WMTS");
tiandids = m_woWorkspace.getDatasources().open(tiandidsInfo);
//纬度地图
tiandidsInfo2D = new DatasourceConnectionInfo();
Log.d(ContentName.TAG,"使用server");
tiandidsInfo2D.setServer(TIANDI_URL_2d);
tiandidsInfo2D.setEngineType(EngineType.OGC);
tiandidsInfo2D.setAlias("tiandiPlane");
tiandidsInfo2D.setDriver("WMTS");
tiandidsPlane = m_woWorkspace.getDatasources().open(tiandidsInfo2D);
m_mapControl.enableRotateTouch(true);
if (tiandids != null && tiandidsPlane !=null) {
m_mapControl.getMap().getLayers().add(tiandids.getDatasets().get(0), true);
m_mapControl.getMap().getLayers().add(tiandidsPlane.getDatasets().get(0), true);
}
// 0 是电子地图 1 是影像地图
m_mapControl.getMap().getLayers().get(0).setVisible(false);
m_mapControl.getMap().viewEntire();
下面是onClicked函数当中的操作
case R.id.btn_main_imgMap://影像地图--默认地图
m_mapControl.getMap().getLayers().get(1).setVisible(false);
m_mapControl.getMap().getLayers().get(0).setVisible(true);
m_mapControl.getMap().viewEntire();
m_mapControl.getMap().setScale(1 / 7984.375);
m_mapControl.getMap().refresh();
break;
case R.id.btn_main_eleMap://电子地图
m_mapControl.getMap().getLayers().get(1).setVisible(true);
m_mapControl.getMap().getLayers().get(0).setVisible(false);
m_mapControl.getMap().viewEntire();
m_mapControl.getMap().setScale(1 / 7984.375);
m_mapControl.getMap().refresh();
break;
图片:

图1 点击电子地图按钮后出现两个图层交替

图2 正常 (点击影像地图正常)