收藏 分销(赏)

选中feature并高亮显示.doc

上传人:仙人****88 文档编号:9313744 上传时间:2025-03-21 格式:DOC 页数:4 大小:36.50KB 下载积分:10 金币
下载 相关 举报
选中feature并高亮显示.doc_第1页
第1页 / 共4页
选中feature并高亮显示.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
选中feature并高亮显示 2008-07-10 15:28 protected void cmdSelect_Click(object sender, EventArgs e)      {        //   SelectFeatures(Map1.Extent);          SelectFeatures();      }      public void SelectFeatures()      {          #region          /*          IEnumerable func_enum = null;          //获取当前map1控件中所有的functionality          func_enum = Map1.GetFunctionalities();          System.Data.DataTable datatable;          //对所有的functionality进行遍历          foreach (ESRI.ArcGIS.ADF.Web.DataSources.IGISFunctionality gisfunctionality in func_enum)          {              ESRI.ArcGIS.ADF.Web.DataSources.IGISResource gisresource = null;              //得到该functionality的resource              gisresource = gisfunctionality.Resource;              //判断该resource是否支持IQueryFunctionality                bool supported = false;              supported = gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));              if (supported)              {                  ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc;                  qfunc = (ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality), null);                  string[] lids;                  string[] lnames;                  //获得图层的layerId和layerName,GetQueryableLayers的重载方法可以指定图层类型                  qfunc.GetQueryableLayers(null, out lids, out lnames);                  ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter = new ESRI.ArcGIS.ADF.Web.SpatialFilter();                  //设置过滤器的过滤条件,txtQuery就是panel中text box的ID                  spatialfilter.ReturnADFGeometries = false;                  spatialfilter.MaxRecords = 1000;                  spatialfilter.WhereClause = txtQuery.Text;                  spatialfilter.Geometry = geometry;                  //对指定的图层进行查询,查询的结果保存为DataTable                  datatable = qfunc.Query(null, lids[0], spatialfilter);                  TreeViewPlus1.Nodes.Clear();                  if (datatable != null)                  {                      System.Data.DataSet ds = new System.Data.DataSet();                      ds.Tables.Add(datatable);                      TreeViewPlus1.ShowClearAllButton = false;                      //将结果绑定到TreeViewPlus控件上                      TreeViewPlus1.BindToDataSet(ds);                      TreeViewPlus1.Nodes[0].Expanded = true;                  }              }          }          */          #endregion          int resource_index = 1;          string targetlayername = "countries";          System.Data.DataTable datatable = null;          //直接获取MapResourceName为world的MapFunctionality,它的编号为1          ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality mf = (ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality)Map1.GetFunctionality(resource_index);          //先得到functionality,再获取resource          ESRI.ArcGIS.ADF.Web.DataSources.IGISResource gisresource = mf.Resource;          bool supported = gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));          if (supported)          {              ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc;              qfunc = (ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality), null);              string[] lids;              string[] lnames;              qfunc.GetQueryableLayers(null, out lids, out lnames);              ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter = new ESRI.ArcGIS.ADF.Web.SpatialFilter();              spatialfilter.ReturnADFGeometries = false;              spatialfilter.MaxRecords = 1000;              spatialfilter.WhereClause = "OBJECTID like " + txtQuery.Text;              datatable = qfunc.Query(null, lids[0], spatialfilter);          }          //重新获得Map1控件所有的functionality          IEnumerable gfc = Map1.GetFunctionalities();          ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource gResource = null;          foreach (IGISFunctionality gfunc in gfc)          {              //找到名为"Selection"的MapResource              if (gfunc.Resource.Name == "Selection")              {                  //down cast到ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource                  gResource = (ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapResource)gfunc.Resource;              }          }          if (gResource == null)              return;          ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer glayer = null;          foreach (System.Data.DataTable dt in gResource.Graphics.Tables)          {              if (dt is ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer)              {                  glayer = (ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer)dt;                  break;              }          }          if (glayer == null)          {              glayer = new ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer();              gResource.Graphics.Tables.Add(glayer);          }          //清除已有数据          glayer.Clear();          DataRowCollection drs = datatable.Rows;          int shpind = -1;          for (int i = 0; i < datatable.Columns.Count; i++)          {              if (datatable.Columns[i].DataType == typeof(ESRI.ArcGIS.ADF.Web.Geometry.Geometry))              {                  //找到Geometry字段的序号                  shpind = i;                  break;              }          }          try          {              foreach (DataRow dr in drs)              {                  ESRI.ArcGIS.ADF.Web.Geometry.Geometry geom = (ESRI.ArcGIS.ADF.Web.Geometry.Geometry)dr[shpind];                  //创建一个GraphicElement                  ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicElement ge = null;                  ge = new ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicElement(geom, System.Drawing.Color.Yellow);                  ge.Symbol.Transparency = 50.0;                  //将GraphicElement添加到ElementGraphicsLayer中                  glayer.Add(ge);              }          }          catch (InvalidCastException ice)          {              throw new Exception("No geometry available in datatable");          }          if (Map1.ImageBlendingMode == ImageBlendingMode.WebTier)          { Map1.Refresh(); }          else if (Map1.ImageBlendingMode == ImageBlendingMode.Browser)          {              //只刷新Graphics Resource              Map1.RefreshResource(gResource.Name);          }      }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服