加载数据

加载离线缓存

将切好的离线缓存拷贝到移动设备上,iMobile可以直接打开。

加载离线切片数据文件,只需要设置数据在移动端的存储路径以及引擎类型(IMAGEPLUGINS)。使用的jar包为com.supermap.data.jar、com.supermap.mapping.jar,使用的so库为libimb2d.so、libgnustl_shared.so、libQt5Core.so、libQt5Gui.so、libQt5Svg.so、libQt5Widgets.so,关键代码如下:

m_workSpace = new Workspace();
//将地图显示控件和工作空间关联
m_mapView = (MapView)findViewById(R.id.Map_view);
m_mapControl=  m_mapView.getMapControl();
m_mapControl.getMap().setWorkspace(m_workSpace);
//缓存数据路径
String SDCARD = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() ;
String url = SDCARD + "/changchun/changchun.sci";
DatasourceConnectionInfo info = new DatasourceConnectionInfo();
//设置别名
info.setAlias(changchun);
//设置Server
info.setServer(url);
//设置数据源连接的引擎类型为IMAGEPLUGINS 地图服务引擎类型
info.setEngineType(EngineType.IMAGEPLUGINS);
//获取数据源集合
Datasources datasources = m_workSpace.getDatasources();
//打开数据源
Datasource ds = datasources.open(info);
//添加到地图窗口中
m_mapControl.getMap().getLayers().add(ds.getDatasets().get(0),true);
//全幅显示
m_mapControl.getMap().viewEntire();

加载在线缓存

通过SuperMap iServer将切好的矢量瓦片发布为服务,iMobile支持在线加载瓦片服务。使用的jar包为com.supermap.data.jar、com.supermap.mapping.jar,使用的so库为libimb2d.so、libgnustl_shared.so、libQt5Core.so、libQt5Gui.so、libQt5Svg.so、libQt5Widgets.so,关键代码如下:

m_workSpace = new Workspace();
//将地图显示控件和工作空间关联
m_mapView = (MapView)findViewById(R.id.Map_view);
m_mapControl =  m_mapView.getMapControl();
m_mapControl.getMap().setWorkspace(m_workSpace);
//缓存数据路径
String server = "http://192.168.120.139:8090/iserver/services/map-changchun/rest/maps/changchun";
DatasourceConnectionInfo info = new DatasourceConnectionInfo();
//设置Server
info.setServer(server);
//设置数据源连接的引擎类型为REST 地图服务引擎类型
info.setEngineType(EngineType.Rest);
//获取数据源集合
Datasources datasources = m_workSpace.getDatasources();
//打开数据源
Datasource ds = datasources.open(info);
//添加到地图窗口中
m_mapControl.getMap().getLayers().add(ds.getDatasets().get(0),true);
//全幅显示
m_mapControl.getMap().viewEntire();