调用离线地图引索越界

0 投票
地图数据已放在手机相关文件夹下,调用帮助文档中的world.smwu已成功运行,但调用TrackData里的地图却报错(引索越界)相关代码如下:
//打开工作空间
m_workspace = new Workspace();
WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();
info.setServer(rootPath + "/SampleData/TrackData/track.smwu");
info.setType(WorkspaceType.SMWU);
m_workspace.open(info);

//将地图显示控件和工作空间关联
m_mapView = (MapView)findViewById(R.id.Map_view);
m_mapcontrol = m_mapView.getMapControl();
m_mapcontrol.getMap().setWorkspace(m_workspace);

//打开工作空间中的第二幅地图
String mapName = m_workspace.getMaps().get(1);
m_mapcontrol.getMap().open(mapName);
m_zoom = (ZoomControls)findViewById(R.id.zoomControls1);
m_mapView = (MapView)findViewById(R.id.Map_view);
m_zoom.setIsZoomInEnabled(true);
m_zoom.setIsZoomOutEnabled(true);
3月 30, 2017 分类:  318次浏览 | 用户: 大浴室 才疏学浅 (12 分)

1个回答

0 投票
 
已采纳
你好,你打开的工作空间中的第二个地图,范例world.smwu数据打开正常是因为这个工作空间中有第二个地图,但你换成track.smwu工作空间里面没有第二个地图就直接打开就报索引越界;代码中m_workspace.getMaps().get(1)中的索引1表示maps中的第二个地图,索引是从0开始的,所以要确定这个工作空间中保存了几个地图,再打开对应的地图。
3月 31, 2017 用户: 王国新 名扬四海 (1,977 分)
采纳于 5月 15, 2017 用户:大浴室

调用的离线地图已成功,可是一片空白,等很久也缓冲不出来是什么问题,情况如图。

1、地图打开后需要刷新一下地图;

2、在设置许可路径前添加一句environment.setOpenGlMode(false);

3、调试一下代码获取的地图名是否存在,打开的地图是否存在;

4、如果用的模拟器换用真机测试一下看。
...