《一种新的二进制地图矢量文件格式设计(学位论文-工学)》由会员分享,可在线阅读,更多相关《一种新的二进制地图矢量文件格式设计(学位论文-工学)(5页珍藏版)》请在金锄头文库上搜索。
1、测绘信息网 http:/测绘信息网测绘专业门户网站.一种新的二进制地图矢量文件格式设计赵琪叶健拷张志宏摘要比较了二进制文件与文本文件的优缺点,以线状数据为例设计了便于文档序列化、易于面向对象 GIS 开发的二进制矢量地图文件格式。关键词矢量地图文件格式; 文档序列论; 面向对象中国图书资料分类号P28 http:/ 测绘信息网A New Binary File format of Vector MapZhao QiYe JiankaoZhang Zhihong(Zhengzhou Institute of Surveying and Mapping, Zhengzhou, 450052)Abs
2、tractThis paper firstly compares text file format with binary file format, then presents a new binary file format of vector map in a line data sample which is easy to be serialized and is convenient for developing Object-Oriented GIS.Key wordsVector map file format; Serialization; Object-Oriented地理数
3、据是 GIS 的核心。近年来随着 GPS 尤其是遥感技术的发展,GIS 的数据源呈现多元化,遥感数据在 GIS 中的应用日益广泛。尽管如此,矢量化地图数据仍然是 GIS 中最重要的数据源,对矢量地图数据的管理与分析仍是重要的研究课题。另一方面,由于新的 GIS 开发工具、编程方法(如面向对象的编程方法)不断涌现,传统的矢量地图文件格式有不相适应的地方。本文在分析传统的矢量地图文件格式的特点和不足的基础上,设计了一种与面向对象的编程方法相适应的二进制矢量地图文件格式。1传统的矢量地图文件格式 http:/ 测绘信息网以 125 万地图数据库的交换数据文件为例,其地图数据是按图幅分层管理,每幅地图
4、分成 14 个要素层:测量控制点,独立地物,居民地,交通,管线与垣栅,境界与政区,水系,地貌,等高线,土质,植被,地名,图外信息和公用数据等;每一层要素又分为点、线、面三种几何类型,每种类型包括以下几种文件:属性文件(.SX),坐标文件(.ZB),地名文件(.DM),图外信息文件(.WB),公用数据文件(.GY)等。其主要数据文件格式为:1) 属性数据.首记录 http:/ 测绘信息网测绘信息网 http:/测绘信息网测绘专业门户网站.点中间记录:.线中间记录: http:/ 测绘信息网.面中间记录:2) 坐标数据 http:/ 测绘信息网3) 地名数据(略)现有数字化的矢量地图文件大多是文本
5、格式。文本文件的优点在于数据比较直观,便于进行编辑修改,其缺点是由于文本文件中容易出现不可识别的控制符或格式不严格,在进行格式读入时经常出错;另一方面,地图的编辑修改通常是针对图形,而不是直接修改数据文件;再者,传统测绘信息网 http:/测绘信息网测绘专业门户网站.的数据文件中属性文件和坐标文件是分离的,这不利于进行面向对象的编辑和对数据的操作。 http:/ 测绘信息网2二进制矢量地图文件格式设计二进制文件的缺点是数据不直观,不能直接查看,其优点则是节省存储空间,格式严格,便于大数据量读入,数据的定位编辑十分方便;更为重要的是,由于 Visual C+序列化文档的存储格式也是二进制,因此矢
6、量地图文件采用二进制格式便于利用 Visual C+的文档序列化的基本功能,有效地提供数据类型保护;此外,二进制文件可以设计成属性数据和坐标数据融为一体的混合数据类型结构,这就和面向对象的地图数据模型天然地保持了一致,便于进行面向对象的数据操作和分析。在面向对象的数据库尚未成熟之前,采用这样的文件格式无疑是一种比较理想的方法,从这个意义上说,它是具有面向对象特点的文件类型。为说明问题起见,我们仅以线状数据为例,来设计相应的便于序列化的二进制文件格式。该文由文件头和数据记录两部分组成,数据记录中既包括属性数据也包括空间坐标数据。http:/ 测绘信息网structdouble x;/横坐标dou
7、ble y;/纵坐标COORDINATE;/文件头定义:structBYTE version;/版本号DWORD wMapCoe;/图幅编号BYTE geometrShape;/几何类型;0:点状;1:线状;2:面状BYTE LayerCode;/图层号WORD wLength;/文件长度WORD wDataOffset;/数据偏移值WORD wNumRecord;/记录数BYTE reserved;/保留WORD reserved;/保留VecMapFileHeader;/线数据记录定义 http:/ 测绘信息网structUNIT nLineD;/线号WORD wHeadNode;/始结点
8、WORD wTailNode;/末结点WORD wLfAreaNum;/左面号WORD wRtAreaNum;/右面号WORD wLeadCode;/主码WORD wldCode;/识别码测绘信息网 http:/测绘信息网测绘专业门户网站.WORD wNumDescCode;/描述码个数WORD *pDescCode;/描述码WORD wNumParamCode;/参数码个数WORD *pParamCode;/参数码WORD wPlaceNameCode;/地名指针DWORD dwPointCount;/坐标对数COORDINATE *PointArray;/坐标串LineData; http
9、:/ 测绘信息网点状、面状地理数据的文件结构可类似推出。另外,以上的文件结构中仅包括属性数据和空间数据,如果需要也可包括地名数据,以利于矢量地图数据的综合管理和分析。3二进制文件的读写操作对以上的二进制文件的读写操作可采用 Visual C+提供的文档序列化机制,这种机制的优点是自动读写和强大的数据类型保护。如下所示:typedef CTypePtrListLineDataList;/数据链表 http:/ 测绘信息网class CVecLineFile:public CObjectDECLARESERIAL(CVecLine)public:CVecLineFile()CVecLineFile
10、()public:/以下是文件格式VecMapFileHeadervecMapHeader;/文件头LineDataList mLineList;/数据记录protected:/读写操作函数Serialize(CArchive&ar);/序列化函数public:/rest of declaration for this class;4结论 http:/ 测绘信息网当前的 GIS 中,通常是用专门的数据库管理系统管理属性数据,而用拓朴数据结构管理图形数据,而坐标数据一般是用文件管理,也有放入数据库的。因此,属性数据和空间数据是分离的,这种混合管理模式必须在文件和 DBMS 间相互调用,数据间的联
11、系大多必须在内存中实现,系统开销大,效率低,尤其是如果用关系数据库管理坐标数据,数据冗余十分庞大。随着技术的发展和各种新的开发工具的不断涌现,面向对象的 GIS、面向对象的地理数据模型以及向对象的地理数据库的设计已经成为潮流,测绘信息网 http:/测绘信息网测绘专业门户网站.但是到目前为止还没有一个成熟的产品出现,在此情况下,采用以上二进制文件管理模式应该是现实的,并且是行之有效的方法。该文件结构既考虑了数据的易操作性,又融合了面向对象的地理数据模型的特点,数据冗余小,数据间的联系一次性读入,提高了效率,也便于向面向对象的地理数据库的移植。http:/ 测绘信息网作者简介:赵琪29 岁、硕士,解放军测绘学院博士研究生。地址:解放军测绘学院研究生培训中心; 邮编:450052叶健栲31 岁、硕士,解放军测绘学院讲师、博士研究生。张志宏女、25 岁、硕士,解放军测绘学院博士研究生。作者单位:赵琪叶健拷张志宏解放军测绘学院参考文献1Visual C +技术内幕清华大学出版社2Class Libraty Reference Microsoft Press3吴升基于 ODBC 的面向对象的图形编辑工具的设计与实现:学位论文郑州:解放军测绘学院 http:/ 测绘信息网