首页 / 浏览问题 / 移动GIS / 问题详情
如何实现在影像地图和电子地图之间切换
58EXP 2023年02月14日
您好我这边想通过一个按钮来切换电子地图和影像地图,请问如何实现呢?

我的想法是 电子地图和影像地图各一个工作空间,但是这样是不是太麻烦了。。。

1个回答

您好,可以使用一个工作空间、一张地图、两个数据集、两个图层完成,方法使用map.getlayers().get(i).setVisible(boolean value)设置此图层是否可见。
3,430EXP 2023年02月14日
您好,我按照这个思路进行操作发生了一个事情,就是我点击影像地图的时候正常的,但是点击电子地图按钮时,两个图层都会显示:
下面是代码,以及图片:

//默认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 正常 (点击影像地图正常)

可以使用imobile for android 11i里面map.setMapDownLoadThreadNum(10)使下载速度提高
...