查看原文
其他

C#读取矢量栅格文件

小刘 GIS前沿 2022-03-16


很多同学使用ArcGIS很熟练,但是对于其中的一些实现原理却不知道,今天小编就带大家用大白话(很多代码都有详细注释哦!)谈谈最简单的实现读取栅格和矢量文件吧!


1

读取栅格文件


1.创建windows窗体应用程序,设置相关控件(坡向,坡度,打开文件)。


 

2.定义一些全局变量,为方法函数的实现服务。


 

3.将读取的栅格文件在窗口显示出来需要为绘制图形设置相关属性,比如画布规格,画笔大小,特别是颜色的调节更为重要。下面就是具体如何去对栅格数据进行按行循环读取判断,定义一些字段表示读取的栅格数据。栅格文件里面的数据显示如下图,有明显的文件头,里面包含了许多的重要信息,比如行数,列数,最值等等。

 


5.最后在设置好的控件方法里面调用已经写好的方法,包括坡度,坡向以及展示成果。


 

6. 结果展示


原始DEM图像

 


基于DEM数据进行的坡度提取

 


基于DEM数据进行的坡向提取


 


2

读取矢量文件


这是官方对矢量数据的一些相关定义,对其的读取都将围绕这些规则来展开。


这个表很重要

 

(1)首先对矢量文件进行搜索读取进来分析处理。


 

(2)定义一些结构成员用来存储文件头里面的重要信息,后面数据的提取都要利用这些作为条件去执行。


 

(3)对提取的矢量文件参数进行定义,比如该矢量文件有多少个面组成,每个面有多少个点,哪个是起始点,哪个是终结点以及点的坐标等相关属性信息。




(4)由前面官方对矢量数据的一些相关定义可知,在其中有些字节上面需要反转字节顺序再转换数据类型。


 

(5)由于矢量文件是由无数的点及其X,Y坐标构成的,所以每一个坐标的读取都不可以出现任何问题,为此需要对其进行异常处理,并把每一个点的坐标存储到一个数组里面去。


 

(6)文件读取完毕就要显示到窗口,下面就对窗口相关数据进行设置,包括画布,画笔(红色),不过在显示之前需要进行坐标转换,毕竟是从地理坐标显示到窗口这种平面坐标嘛,否则显示的图形就会越界无法正常显示。


 

读取结果展示

 


- END -


C#递归读取GIS目录文件格式
C# | 批量将CAD图幅网格外扩生成新图框(附源代码下载)
C#程序对AutoCAD二次开发(一)
C#语言对AutoCAD二次开发(二)
C#语言对CAD二次开发(三)

戳原文,更有料!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存