JAVA GIS控制图层显示方法

import com.esri.adf.web.ags.data.AGSMapFunctionality;
import com.esri.adf.web.data.GISResource;
import com.esri.adf.web.data.WebContext;
import com.esri.arcgisws.LayerDescription;
import com.esri.arcgisws.MapDescription;

 

......................

 

//取得gis资源

GISResource rec=(GISResource)context.getResources().get("ags0");

//取得AGSMapFunctionality 函数
   AGSMapFunctionality ags=(AGSMapFunctionality)rec.getFunctionality("map");
   MapDescription des=ags.getMapDescription();
   LayerDescription[] layers= ags.getLayerDescriptions();
   for(int i=0;i<layers.length;i++)
   {
    LayerDescription layer=layers[i];

    //控制显示标注
    layer.setShowLabels(false);

    //控制是否显示
    layer.setVisible(false);
   }

   context.refresh();

//控制图层中要素的显示

AGSMapResource rec = (AGSMapResource) context.getResources().get(
     "ags0");
   MapServerPort mapserverport = rec.getMapServer();
   MapServerInfo mapinfo = mapserverport.getServerInfo(mapserverport
     .getDefaultMapName());
   MapLayerInfo[] layerInfos = mapinfo.getMapLayerInfos();
   
   AGSMapFunctionality ags = (AGSMapFunctionality) rec
     .getFunctionality("map");
   LayerDescription[] laydescs= ags.getLayerDescriptions();
   for(int i=0;i<layerInfos.length;i++)
   {
    if (layerInfos[i].getName().equalsIgnoreCase("图层名称"))
    {

     //设置查询要素条件
     laydescs[i].setDefinitionExpression("SITENAME='666'");
    }
   }

原文地址:https://www.cnblogs.com/yg_zhang/p/1282111.html