刚刚.Net相关知识技术互动平台(绿色天堂)
.Net知识技术交流、探讨、请教与共享(Visual Studio.Net、Asp.Net、VB/C#、.NetWindows应用程序、Windows服务、Socket通信、GIS、ArcGIS、JavaScript、Sql Server和Oracle等)
posts - 73,  comments - 472,  trackbacks - 38
在《GIS开发随笔(4)——使用MapNet控件和DataGrid实现图层数据互相查询》中我们讲述了如何使用MapNet控件来完成点、线、面的属性获取代码,下面我们就来研究一下在地图中,使用StudioAT.MapNet.DLL中提供的和MapNet控件绑定的几个主要的画方面、圆面、不规则图形面的工具是如何统计其中的元素的。通过MapNet控件的官方网站上的帮助页面http://www.studioat.it/StudioAT/Help/MapNet/MapNetWebHelp.htm我们可以知道这些工具的主要实现方法。
1、画方面工具,工具名称“SelectByCircle”:
2、画圆面工具,工具名称“SelectByRect”:
3、画不规则图形面工具,工具名称“SelectByPolygon”:
其中将这几个控件的同一个属性“MapNetControl”的值都设置为所要操控的MapNet控件名上,即将这几个控件和所要控制的MapNet控件绑定。
在MapNet控件的“SelectByShape”事件中添加类似下面的代码:
 1private void MapNet1_SelectByShape(StudioAT.IGeometry shape)
 2        {
 3            IMapNet mapNet = this.MapNet1;
 4            ICollectionLayers myICL = mapNet.CollectionLayers;
 5            IGetFeatures myIGF = null;
 6            //根据图层读取数据到DataSet 
 7            ILayer myIL = myICL.FindById(this.DDL_LayerChoose.SelectedItem.Value);
 8            ISpatialFilter myISF = new SpatialFilter(shape, ArcXML.enuSpatialFilterRelation.area_intersection);
 9            ISpatialQuery2 myISQ2 = new SpatialQuery();
10            myISQ2.SpatialFilter = myISF;
11            DataSet myDs = myIL.Recordset(myISQ2,truefalse,myIGF);
12            //更改列名
13            try
14            {
15                                int GIS_IDindex = -1;
16                int IDindex = -1;
17                for (int k = 0; k < myDs.Tables[0].Columns.Count; k++)
18                {
19                    switch (myDs.Tables[0].Columns[k].ColumnName)
20                    {
21                        case "#ID#":
22                            myDs.Tables[0].Columns[k].ColumnName = "序号";
23                            IDindex = k;
24                            break;
25                        case "EnvelopeXMin":
26                            myDs.Tables[0].Columns[k].ColumnName = "最小经度";
27                            break;
28                        case "EnvelopeXMax":
29                            myDs.Tables[0].Columns[k].ColumnName = "最大经度";
30                            break;
31                        case "EnvelopeYMin":
32                            myDs.Tables[0].Columns[k].ColumnName = "最小纬度";
33                            break;
34                        case "EnvelopeYMax":
35                            myDs.Tables[0].Columns[k].ColumnName = "最大纬度";
36                            break;
37                        case "NAME":
38                            myDs.Tables[0].Columns[k].ColumnName = "名称";
39                            break;
40                        case "GIS_ID":
41                            GIS_IDindex = k;
42                            break;
43                        case "REMARK":
44                            myDs.Tables[0].Columns[k].ColumnName = "备注";
45                            break;
46                        default:
47                            break;
48                    }

49                }

50    //下面的Grid并非是.Net2003中自己的Grid而是第三方控件所提供的名称:UWG_Result            
                        UWG_Result.DataSource = myDs;    

51                UWG_Result.DataBind();
52                UWG_Result.Columns[GIS_IDindex].Hidden = true;
53                UWG_Result.Columns[IDindex].Hidden = true;
54            }

55            catch (Exception ex)
56            {
57                PageClass myPC = new PageClass();
58                myPC.Alert(ex.Message,this);
59            }

60        }
这样无论是画圆面、画方面还是画不规则图形面都会触发上述事件,从而能统计出在DropDownList控件中(上诉中有“DDL_LayerChoose”名称的为此控件)所选择的图层元素在所画的“shape”面中的个数以及每个元素的详细信息。
      不知道对大家是否有帮助,因为时间仓促这次的随笔就写到这里了,对上述代码还有什么独特见解的可以发表评论。

转载本文说明(以下简称本说明):必须遵守《刚刚网络作品版权声明》,再转载。"本说明、作者、作者博客网址及作者博客坐落,本文中提及的各种说明、备注或附录性文字"必须被转载,且不得改变其原有内容和要表达的意图!
作者:刚刚   作者博客网址:http://lijigang.cnblogs.com/   作者博客坐落在博客园
把握现实生活,培养自身能力
掌握新型技术,提高自我力量

posted on 2007-03-07 17:22 刚刚 阅读(370) 评论(0)  编辑 收藏 所属分类: GIS开发技术
郑重声明:
本博客的所有内容均使用
{刚刚网络作品版权声明}
保护本博客网络作品版权
    非常欢迎您的到来!Asp.Net Ajax已经出台正式的第3.5版了,现将有关下载放在了本博客的置顶随笔中,有需要者请大家浏览此置顶随笔或者点击此处,因博客园上传附件大小和空间容量有限,刚刚(也就是本人)决定将最新版本放在CSDN资源上,望广大博友谅解。如果有人希望最新动态,请关注官方网站,网址请点击此处
本人其他博客:超越自我de博客刚刚.Net相关知识技术互动平台(粉色回忆)163博客百度博客

     ——刚刚 (公告)
每个人的生活都有自己不同味道的咖啡理论! 8-12 22:30

<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

与我联系

搜索

 

常用链接

留言簿(12)

我管理的小组

我参与的团队

随笔分类(79)

随笔档案(73)

文章分类(1)

文章档案(1)

收藏夹(152)

本人其他博客

园子里的优秀博客

最新随笔

积分与排名

  • 积分 - 102883
  • 排名 - 369

最新评论

阅读排行榜

评论排行榜