首页 / 浏览问题 / 移动GIS / 问题详情
imobile for android 加载geoserver wms 多图层
1EXP 2023年12月25日
 //load wms layer

        DatasourceConnectionInfo sourceWmsinfo=new DatasourceConnectionInfo();
        //
        sourceWmsinfo.setAlias("livingcircle");//别名
        //设置引擎类型
        sourceWmsinfo.setEngineType(EngineType.Rest);
        //sourceWmsinfo.setEngineType(EngineType.OGC);
        //设置驱动名称
        sourceWmsinfo.setDriver("WMS");
        //设置地图服务地址
        String urlWms ="http://192.168.1.4:9182/geoserver/test/wms";


        sourceWmsinfo.setWebTransparent(true);
        sourceWmsinfo.setWebFormat("image/png");
        sourceWmsinfo.setReadOnly(false);
        //sourceWmsinfo.setWebVisibleLayers("");//设置无效
        sourceWmsinfo.setServer(urlWms);
        //打开数据源
        Datasource datasourceWms = mWorkspace.getDatasources().open(sourceWmsinfo);
        //添加到地图窗口中 
        //datasourceWms.getConnectionInfo()
        if(null!=datasourceWms&&null!=datasourceWms.getDatasets()&&datasourceWms.getDatasets().getCount()>0){
            Dataset ds=datasourceWms.getDatasets().get(0);
            Layer layer =mMapControl.getMap().getLayers().add(ds,true);
            String ls=datasourceWms.getConnectionInfo().getWebVisibleLayers();
            //layer.getParentGroup().get(0).setVisible(false);
            LayerSettingImage lsi= (LayerSettingImage) layer.getAdditionalSetting();
            lsi.setTransparent(true);
            //lsi.setVisibleSubLayers(new String[]{""});
            //layer.setAdditionalSetting(lsi);
            mMapControl.getMap().refresh();
        }

1个回答

您好,请问那边遇到什么问题了,麻烦描述下遇到的具体情况呢,打开数据源失败还是打开数据源成功添加到地图上不显示还是其他的错误呢
3,745EXP 2023年12月26日

打开地图 所有的图层都显示了 ,比如http://192.168.1.4:9182/geoserver/test/wms根服务下面有多个图层test:A,testL:B,test:C.全部显示了

LayerSettingImage lsi= (LayerSettingImage) layer.getAdditionalSetting();

debug追踪lsi.getVisibleSubLayers()也是A,B,C都有 ,无法过滤掉,请问有办法过滤吗

datasourceConnectionInfo.setWebVisibleLayers("A");过滤无效

没法处理吗?
暂不支持对服务中的图层进行筛选,整张地图以瓦片形式加载出来,打开web数据源后一张地图对应一个影像数据集
LayerSettingImage lsi= (LayerSettingImage) layer.getAdditionalSetting();

lsi.setTransparent(true);

lsi.setVisibleSubLayers(new String[]{"A"});//为啥这个方法可以控制arcgis的wms服务 ,对于geoserver的服务无效???
...