C#读取矢量栅格文件
很多同学使用ArcGIS很熟练,但是对于其中的一些实现原理却不知道,今天小编就带大家用大白话(很多代码都有详细注释哦!)谈谈最简单的实现读取栅格和矢量文件吧!
读取栅格文件
1.创建windows窗体应用程序,设置相关控件(坡向,坡度,打开文件)。
2.定义一些全局变量,为方法函数的实现服务。
3.将读取的栅格文件在窗口显示出来需要为绘制图形设置相关属性,比如画布规格,画笔大小,特别是颜色的调节更为重要。下面就是具体如何去对栅格数据进行按行循环读取判断,定义一些字段表示读取的栅格数据。栅格文件里面的数据显示如下图,有明显的文件头,里面包含了许多的重要信息,比如行数,列数,最值等等。
5.最后在设置好的控件方法里面调用已经写好的方法,包括坡度,坡向以及展示成果。
6. 结果展示
原始DEM图像
基于DEM数据进行的坡度提取
基于DEM数据进行的坡向提取
读取矢量文件
这是官方对矢量数据的一些相关定义,对其的读取都将围绕这些规则来展开。
这个表很重要
(1)首先对矢量文件进行搜索读取进来分析处理。
(2)定义一些结构成员用来存储文件头里面的重要信息,后面数据的提取都要利用这些作为条件去执行。
(3)对提取的矢量文件参数进行定义,比如该矢量文件有多少个面组成,每个面有多少个点,哪个是起始点,哪个是终结点以及点的坐标等相关属性信息。
(4)由前面官方对矢量数据的一些相关定义可知,在其中有些字节上面需要反转字节顺序再转换数据类型。
(5)由于矢量文件是由无数的点及其X,Y坐标构成的,所以每一个坐标的读取都不可以出现任何问题,为此需要对其进行异常处理,并把每一个点的坐标存储到一个数组里面去。
(6)文件读取完毕就要显示到窗口,下面就对窗口相关数据进行设置,包括画布,画笔(红色),不过在显示之前需要进行坐标转换,毕竟是从地理坐标显示到窗口这种平面坐标嘛,否则显示的图形就会越界无法正常显示。
读取结果展示
- END -