CASS与MAPINFO数据转换研究

2022-09-12

AutoCAD是AUTODESK公司的主要数字制图软件, 在图形数据采集和编辑等方面有很强的功能, 在市场开发、软件技术、产品价格等方面比其他数字制图软件有着明显的优势和发展前景。同时AutoCAD也提供了较强的二次开发功能, 目前很多单位和部门都以它为数据采集和二次开发平台。南方公司的地形地籍成图软件CASS是基于AutoCAD平台开发的GIS前端数据采集系统, 主要应用于地形成图、地籍成图、工程测量应用三大领域, 经过近几年的开发和应用, 该软件在数据采集、数据处理和数据管理等方面功能较强。随着GIS技术的飞速发展, 如何把CASS的数据转换到GIS数据库中, 是目前CASS用户关心的问题。本文在分析了CASS和MapInfo数据存储格式特点的基础上, 讨论CASS和MapInfo间的数据转换方法和过程, 并给出了关键代码。

1 CASS与MapInfo数据存储格式

1.1 AutoCAD的扩展数据及CASS属性数据的存储

在AutoCAD的图形文件中, 除了保存图形本身的各种数据外, 还可以通过扩展数据和扩展记录来保存用户的数据.扩展数据是由应用程序加入到AutoCAD对象中的数据, 它遵循系统的规则定义数据, 每一个应用程序都可以对同一个对象加入自己的数据, 再根据各自的申请名来读取这些数据, 使得不同程序注册的数据不会混淆。AutoCAD负责维护这些数据, 但不使用这些数据, 通过使用扩展数据技术, 用户可以将自己的非图形信息保存在图形文件中。

扩展数据由一个或多个1001组码组成, 每个1001组码包括唯一的程序申请名.每个申请名定义了自身数据类型、含义和组织结构。扩展数据的组码范围从1 0 0 0~1071, 下面列出用于扩展数据的组码以及组码的数据类型, 应用程序并非一定要使用全部组码。

1000组码:字符串 (长度不超过255个字符)

1001组码:申请名 (最长31个字符)

1040组码:一个实数

CASS就是通过扩展数据来记录编码及其他的一些属性数据。

1.2 MapInfo的文件格式

MapInfo是目前在国内外较流行的GIS平台之一, 广泛应用于各行各业。能够与它进行数据交换的平台也较多, 主要通过mif、mid文件类型进行数据交换, 这两个类型文件是一一对应的。mif格式文件能够完全描述一个MapInfo表, 并存储图形的坐标系、属性数据的字段结构、图形对象的坐标、颜色、线型、填充风格 (包括填充类型、填充背景色、填充前景色) 等;mid格式文件按mif字段定义顺序存储着每个图形对象所对应的属性数据。

传统MapInfo和AutoCAD数据格式转换是通过dxf进行交换, 但dxf文件无法把属性一起导入, 导致数据丢失或错误。所以采用mif、mid类型文件实现MapInfo和AutoCAD数据交换是比较可行的方法, 不仅保证了数据的完整性, 还保证了属性数据与图形数据的一致性。

2 转换原理

2.1 ObjectARX应用程序

ObjectARX应用程序是动态链接库 (DLL) , 可以和AutoCAD共享地址空间, 直接调用A u t o 2 C A D的内部函数。在O b j e c t A R X应用程序中定义的命令与AutoCAD的内部命令运行方式相同, 而在ObjectARX应用程序中创建的实体对象也和AutoCAD中创建的实体对象没有区别。

使用ObjectARX的用户可以完成各种开发工作, 例如: (1) 直接访问AutoCAD的图形数据库; (2) 和AutoCAD编辑器进行交互; (3) 使用MFC创建标准的W indows用户界面; (4) 支持AutoCAD的多文档接口 (MD I) ; (5) 在应用程序中自定义类; (6) 与Visual L ISP、ActiveX、COM等编程接口通信。

2.2 CASS数据的分类

CASS中的图形可分为以下几大类:直线、复合线、2维多义线、圆、文本、多行文本 (很少用) 、块等.对应这些分类, 把块转换为MapInfo中的point, 直线、复合线、2维多义线转换为polyline, 封闭的复合线转换为region。

按照该分类, 将所有的图形对象归类, 做出相应的代码对应文件, 文件对应表格式如表2。

3 实现数据转换的关键程序代码

3.1 判断实体的类型

3.2 实体类别后的转换

4 程序运行效果

将C A S S数据运用本文的程序转入MapInfo后, 运行结果表明本文的程序使CASS中的图形数据和属性数据转入MapInfo后能满足入库的要求, 达到了转换目的。

5 结语

随着GIS技术的不断发展, 数据的转换和共享显得日益重要。目前使用的各种转换工具虽然能够将大部分数据转入地理信息系统, 但还存在数据的损失和图形数据与属性数据不一致等问题。

本文采用程序模块来实现C A S S和MapInfo之间的数据转换, 经过大量的实践和广泛应用, 程序运行结果较好, 已运用于实际的工作中, 解决了数据转换过程中的数据损失和图形数据与属性数据不一致等问题。

摘要:本文基于笔者多年从事CASS内业相关工作经验, 以CASS和MAPINFO之间的数据转换为研究对象, 深度探讨了CASS和MAPINFO的数据存储格式和转换原理, 给出了具体的程序代码, 实验了程序运行效果, 现在已运用于实际的工作中, 解决了数据转换过程中的数据损失和图形数据与属性数据不一致等问题。相信对从事相关工作的同行有着重要的参考价值和借鉴意义。

关键词:CASS,MAPINFO,数据转换,程序

参考文献

[1] 李景文, 唐诗华.基于Web GIS的城市住宅小区物业管理系统方案设计[J].桂林工学院学报, 2002, 22 (3) :312~315.

[2] CharlesMcAuley[著], 李世国, 潘建忠, 平雪良[译].AutoCAD2000ObjextARX编程指南[M].北京:机械工业出版社, 2000:2~3.

上一篇:小学语文教学中进行美育渗透的尝试下一篇:短效胰岛素联合格列苯脲治疗糖尿病的临床效果