首页 / 浏览问题 / 移动GIS / 问题详情
imobile 地图加载完成监听无响应
9EXP 2023年10月09日

加载地图服务,安卓机器上已经显示出地图,但是没有走地图加载完成监听。

图层加载代码:

MapControl mapControl = superMapView.getMapControl();
Workspace workspace = new Workspace();
mapControl.getMap().setWorkspace(workspace);// 将地图显示控件与工作空间关联

DatasourceConnectionInfo dsInfo = new DatasourceConnectionInfo();
dsInfo.setEngineType(EngineType.Rest);//设置引擎类型
dsInfo.setServer("http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China");
dsInfo.setAlias("世界地图");
Datasource ds = workspace.getDatasources().open(dsInfo);//打开数据源
if (ds != null){
    mapControl.getMap().getLayers().add(ds.getDatasets().get(0), true);
    mapControl.getMap().refresh();
}

设置地图完成监听:

mapView.getMapControl().getMap().setMapLoadedListener(new MapLoadedListener() {
    @Override
    public void onMapLoaded() {
        Log.i(TAG,"地图加载完成");
    }
});

测试发现,有些地图服务能走进完成监听,有些不能,不知道为什么。

还有,地图加载失败有监听的方法吗,我没有找到。

1个回答

您好,“有些地图服务能走进完成监听,有些不能”这两种情况下地图是否有差异,可以具体描述下帮助定位问题
3,430EXP 2023年10月09日

加载天地图图层时,可以走进这个监听;

加载我例子写的这个地址:http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China,不可以进监听;

超图技术支持人员让我用 Layers.setLayersStateListener 这个方法。不过我还是想看看mapView.getMapControl().getMap().setMapLoadedListener这个事件我到底不能不能用。

我想利用地图完成加载完成事件setMapLoadedListener,添加一些方法,比如:高亮一些点、线,对数据进行坐标转换,定位等操作,地图初始化好了,才能做这些操作;我也想知道地图加载失败事件,好给客户提示,重新手动刷新,加载地图。

"mapView.getMapControl().getMap().setMapLoadedListener"方法用于打开地图的监听,如果没有打开地图,只是调用layers.add方法,该方法不会监听的
...