首页 / 浏览问题 / 移动GIS / 问题详情
android二维地图开发中如何实现将不同图层在同一个地图中显示出来
3EXP 2019年09月18日

使用产品 imobile 9d

数据类型:smwu

问题详细描述: 有两个smuw地图资源文件,比如两张地图分别是北京地图和长春地图,期望在同一地图界面上面显示出来。先打开第一张地图

m_mapView = (MapView)findViewById(R.id.Map_view);
m_mapControl = m_mapView.getMapControl();
m_mapControl.getMap().setWorkspace(m_wokspace);
//打开工作空间中的第1幅地图
String mapName = m_wokspace.getMaps().get(0);
m_mapControl.getMap().open(mapName);

然后打开第个2地图资源,通过MapView.addOverlayMap添加叠加的图层

m_wokspace2.open(info2);
m_mapControl2 = new MapControl(this, m_wokspace2);
      //打开工作空间中2的第1幅地图
String mapName2 = m_wokspace2.getMaps().get(0);
boolean open3 = m_mapControl2.getMap().open(mapName2);
m_mapView.addOverlayMap(m_mapControl2);

最后地图界面只显示了第1个地图资源,是方法使用有错还是有其他办法

1个回答

您好,目前这个还不能进行地图的叠加,您可以这样操作:

在桌面软件中将所有的地图都配置在一个工作空间中(需要把另一个工作空间的数据源也同步复制到一个工作空间),然后在移动端使用Map.addLayersFromMap()方法将地图叠加
9,192EXP 2019年09月19日
您的意思是需要把本地的两个smwu文件,通过桌面软件制作成一个smwu文件么,同时我也没有找到Map.addLayersFromMap() 这个方法

对,需要制作成一个工作空间文件,目前9D版本还没有提供这个功能,10i版本已经提供了。您可以在我们官网下载10i版本的iMobile for Android,下载地址:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=1157

你好,我用10i的版本也没有看到可以添加在线图层的方式?添加多个离线的smwu文件在9D里面的api就有。在supermap for android里面没有类似dynamicLayer、tidituLayer等概念,不知道多个在线图层的叠加显示应该怎么做呢?
您好,请问一下您使用的产品是iMobile for Android产品吗?加载多个图层可以通过datasourceConnectionInfo打开多个数据源,通过map.getLayers().add()方法加载数据
...