首页 / 浏览问题 / 移动GIS / 问题详情
iMobile v1012 加载在线地图频繁闪烁
5EXP 2021年11月05日

我们加载了多个在线地图资源(多个URL),每个URL使用下面的方法加载

protected Layer loadOnlineLayer(String url,String tag,int type,boolean addToHead){
    Datasource datasource = mapControl.getMap().getWorkspace().getDatasources().get(tag);
    if(datasource == null){
        DatasourceConnectionInfo dsInfo = new DatasourceConnectionInfo();
        dsInfo.setServer(url);
        dsInfo.setAlias(tag);
        dsInfo.setEngineType(EngineType.Rest);
        datasource = mapControl.getMap().getWorkspace().getDatasources().open(dsInfo);
    }
    mapControl = viewBinding.mapView.getMapControl();
    if (datasource != null) {
        Dataset dataset = datasource.getDatasets().get(0);
        //dataset.setDescription(String.valueOf(type));
        final Layer layer = mapControl.getMap().getLayers().add(dataset, addToHead);
        if(layer != null){
            layer.setDescription(String.valueOf(type));
        }
        return layer;
    } else {
    }
    return null;
}

所有的URL地图资源加载完之后调用mapControl.getMap().refresh();方法刷新。

现在的行为是:每加载一个URL之后SDK都会自动刷新一次UI。我们加载了多个URL,所以就会刷新多次,闪多次。

预期行为是:我们每加载一个URL时SDK不刷新UI,等最后处理完所有的URL之后再调用SDK的某个方法时才刷新,避免频繁闪烁的问题。

请问SDK是否支持,或者是否有什么方案可以实现?

1个回答

您好,加载地图是不会对UI进行刷新的,打开多个url实现思路如下:
1.初始化地图控件和工作空间
2.通过初始化的工作空间workspace打开多个数据源信息
3.再通过地图中的图层集合layers.add()方法加载图层数据
9,237EXP 2021年11月08日
...