资源描述:
《C#开发GIS应用简明教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#开发GIS应用简明教程第三章数据处理作者:李继攀本文保留一切权利,严禁转载或复制全部或部分内容.第三章数据处理在介绍数据处理之前,我们先在MapInfo中生成自己的地图,在本章中将全部使用自己生成的地图.这是因为MapX本身提供的地图和实际应用的地图在数据结构上有较大的差异.不适合用来介绍MapX的数据处理.首先安装好MapInfo,最好能使用7.0以上的版本.以下操作在MapInfoProfessional7.0版本下完成.打开MapInfo,界面如下图:单击工具栏最左边的按钮,新建一个图层数据表.如下图:第1页C#开发GIS应用简明教程第三章数据处理作者:李继攀本文保留一切权利,严
2、禁转载或复制全部或部分内容.在"NewTable"窗口中按照上图选择后单击"Create..."按钮,建立一个新的数据图层.MapInfo会弹出一个窗口,如下图:在这个窗口中设置好数据表的字段属性.单击"AddField"按钮将字段添加到表中,我们在这里将添加4个字段:ID,名称,月供年限和水电费.设置好的字段如下图:设置好以后,单击"Create..."按钮,MapInfo将询问建立图层表的文件路径.将你的图层表文件名改为"HouseLayer.Tab",存放到合适的路径下.例如:"E:TestDataMap".保存完毕以后,得到一个空白的图层表文件,MapInfo打开了这个文件显
3、示如下:第2页C#开发GIS应用简明教程第三章数据处理作者:李继攀本文保留一切权利,严禁转载或复制全部或部分内容.这个图层表上现在还没有任何图形,我们在图层上增加两个图元,并把数据添加上去.在Drawing工具条上选择画矩形的工具,在HouseLayerMap上画一个矩形,然后使用拷贝粘贴的功能将其复制为另一个矩形.选择图元后,对两个图元稍做修饰.如下图:第3页C#开发GIS应用简明教程第三章数据处理作者:李继攀本文保留一切权利,严禁转载或复制全部或部分内容.现在,简单的作图就完成了.接着输入和图形相关的数据.选择如下图指示的按钮,在图层上点选图元,打开输入数据的窗口.在输入数据的窗口中输
4、入以下两条数据:ID名称月供年限水电费0001A栋2518.770002B栋3025.12保存图层.MapInfo的画图工作就完成了.你还需要在MapX5.0自带的工具GeosetManager里把刚刚画好的图层放到一个地图文件(.GST格式)里,才能被MapX调用,我们把这个文件命名为"小区.GST".好,准备工作就绪,现在我们开始介绍MapX的数据处理.1.数据读取(DataReading)先对程序的功能作一些说明:把小区地图放在MapX控件上,并且在窗口的左边放置一个ListView,在这个ListView中显示所有的HouseLayer图层表中的图元数据.和以往不同的是,我们的程序
5、界面做了一些改动,以跟踪数据的变化.下图是窗口设计界面:第4页C#开发GIS应用简明教程第三章数据处理作者:李继攀本文保留一切权利,严禁转载或复制全部或部分内容.可以看到,我们在窗口左边放置了一个ListView控件,并在ListView中增加了4列(Columns)来显示数据.同时,把MapX控件的地图换成了我们自己制作的"小区"地图.在button1的单击事件button1_Click中编写如下代码:MapXLib.Fieldsflds=newMapXLib.FieldsClass();MapXLib.Layerlyr=axMap1.Layers._Item("HouseLayer")
6、;MapXLib.Datasetdts=null;flds.Add("ID","ID",MapXLib.AggregationFunctionConstants.miAggregationSum,MapXLib.FieldTypeConstants.miTypeString);flds.Add("名称","名称",MapXLib.AggregationFunctionConstants.miAggregationSum,MapXLib.FieldTypeConstants.miTypeString);flds.Add("月供年限","月供年限",MapXLib.AggregationFun
7、ctionConstants.miAggregationSum,MapXLib.FieldTypeConstants.miTypeInteger);flds.Add("水电费","水电费",MapXLib.AggregationFunctionConstants.miAggregationSum,MapXLib.FieldTypeConstants.miTypeFloat);dts=axMap1.DataSets.Add