您好,我按照这个思路进行操作发生了一个事情,就是我点击影像地图的时候正常的,但是点击电子地图按钮时,两个图层都会显示: 下面是代码,以及图片: //默认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 正常 (点击影像地图正常)