GIS系统里DEM文件和DXF文件读取。

原创 2007年10月12日 13:39:00

昨天帮朋友做了个小玩意,一个读usgs的DEM文件格式和DXF文件格式。

由于开始我对GIS的玩意一窍不通,经过他许些专业术语的指点,才弄出来,其实也很简单。Let's start!

先说简单的,DXF文件,DXF为文本文件,数据的储存方式比较土。

<属性0>

<内容0>

<属性1>

<内容1>

比如属性10表示x,属性20表示y,属性30表示z,那么一个向量就是:

10

100.123

20

200.123

30

300.123

这样,下面是一些比较重要的属性:

$EXTMAX //下面是描述宽高的最大值

66 //表示一个数据段的开始,每个数据段的第一个数据都是(0, 0),所以也可以通过检测(0, 0)来判断是否是一段数据的开始

每个数据段形成的是一个闭合的多边形,可以用来创建windows下的rgn.

然后是DEM文件格式,同样也是文本的,不过比较麻烦,不方便直接查看

比较重要的数据如下(我用的是ifstream进行读取):

首先seekg到858的位置,然后读入一个int,内容是整个图的y轴长度, height

然后再读两个无用的int,in >> junk >> junk;

然后开始循环读height组数据,每组数据为每一行的高度值,并且每组数据的长度也不一样。

for(int i = 0; i < height; i ++)
 {
  in >> junk >> junk >> width;
  in.seekg(126, ios::cur);
  
  for(int j = 0; j < width; j ++)
  {
   int z;
   in >> z;
   // 这里(i, j, z)就构成了一个顶点
  }
 }

DEM数据最简单的读取就是这样的,只不过DEM数据里的每一行的位置并不是固定的,所以如果最后结果要用3D方式描述出来的话,还需要读入每一行的起始位置,这个信息在第一个循环的两个junk中的一个。

 

 

 

C++读取和生成dxf文件(一)

利用dxflib库来读取和生成dxf文件
  • qq_39676354
  • qq_39676354
  • 2017年11月01日 12:55
  • 308

C/C++ 图像处理(15)------DXF文件の读取、绘图与显示

关于DXF文件的读取自几年前做项目的时候就用到了,不过当时是另外一个朋友负责的就没在意,直至最近的项目又要用到方才自己动手去弄。 因为几年前项目的代码还在,因此看了下发现之前朋友是用dxflib开源...
  • oHanTanYanYing
  • oHanTanYanYing
  • 2016年12月27日 17:21
  • 3354

对开源库使用 AutoCAD 文件格式

简介 很多开发人员和地理信息系统 (GIS) 专家一直无法使用 Drawing Interchange Format (DXF) 或 "drawing" (DWG) 格式的文件。这些 AutoC...
  • smile0198
  • smile0198
  • 2013年05月15日 21:36
  • 1853

CAD到Supermap GIS的数据格式转换

  • 2013年04月25日 23:46
  • 28KB
  • 下载

DXF文件解析显示(读取,合并,保存)

项目来源: 这个项目是一个老师在外面接的。最后转给我来弄了。 项目要求: 1.C#自定义控件,可以显示DXF文件,支持多张显示(合并为一个图)。 2.要求可以保存合并后的图形,保存格式为DXF文件。...
  • XiaoHeiBlack
  • XiaoHeiBlack
  • 2013年08月29日 22:06
  • 10021

数据交换文件DXF简单java解析

DXF是AutoCAD与其他应用程序交换数据时使用的文件,有多种格式,这里所说的是指ASCII DXF 格式文件. 这里主要实现java程序对DXF文件的解析,将几何体进行分类存储,便于各个程序间进行...
  • fitAllEnv
  • fitAllEnv
  • 2017年05月06日 11:56
  • 1328

CAD(dxf)、SHP、KML数据加载并套合到卫星图像上(坐标校准)

CAD(dxf)、SHP、KML数据加载并套合到卫星图像上(坐标校准)   相关教程:        1、AutoCAD加载高清卫星图像和矢量设计图套合配准       ...
  • tangshenq17565
  • tangshenq17565
  • 2017年04月18日 15:54
  • 155

【Arcgis Engine开发】AE开发把影像或者矢量加载到图层

AE开发把影像或者加载到图层1.创建一个类工厂2.使用类工厂创建一个要使用的工作区3.使用工作区打开并得到图层的dataset4.把dataset装入到新建的图层实例5.把图层加载到MapContro...
  • u013177446
  • u013177446
  • 2017年02月16日 16:48
  • 721

判断dxf文件的版本

打开在DXF参考手册中,点击“索引”-->输入“HEADER”,
  • sanqima
  • sanqima
  • 2014年07月13日 17:38
  • 1744

读取DXF格式文件的C++代码

OpenGL是美国SGI公司最新推出的一套开放式的三维图形软件接口,适用于广泛的计算机环境,从个人计算机到工作站,OpenGL都能实现高性能的三维图形功能。   OpenGL本身不仅提供对简单图元的操...
  • kingepoch
  • kingepoch
  • 2015年05月29日 17:18
  • 3358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GIS系统里DEM文件和DXF文件读取。
举报原因:
原因补充:

(最多只允许输入30个字)