- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
423基于WINCEGPS手簿的数字化测图系统研究与实现
基于WINCE GPS手簿的数字化测图系统研究与实现
孙艳崇
(辽宁省交通高等专科学校 辽宁 沈阳 110122)
摘要:本人主持了辽宁省教育厅的科研项目《基于WINCE GPS手簿的数字化测图系统研究与实现》,其项目编号是L2010220。该测图系统实现了在WINCE GPS手簿上直接绘制地形图的功能,并且可以通过编码链接导入到“CASS”(数字地形地籍绘图软件)中,自动生成“dwg”格式的数字地图文件;用户只要在“CASS”绘图软件中进行简单的编辑工作,即可生成标准的数字地形图。采用这一系统进行外业数字测图时,可以利用碎步点坐标采集之间的空余时间,进行现场绘图,这样不仅可以减轻内业成图的工作量;并且利于发现漏测的地物,进行实时的补测与修改。
关键词:WINCE ;GPS手簿;数字化测图系统;研究与实现
1.概述
目前很多品牌的GPS接收机手簿都具有操作系统(例如WINCE),广义上讲此手簿即相当于一个掌上电脑,利用嵌入式开发工具EVC4.4对其进行二次开发,实现在WINCE GPS手簿上绘制数字地图的功能,本测图系统实现了掌上测图系统的基本功能,具有展点、图形绘制、图形编辑及无极缩放等功能。
本系统采用视图文档结构,文档对象通常代表一个已经打开的文件,在文档类中,通过串行化函数可以实现图形的打开和保存,而视图对象表示文档中数据的可视化表示,并提供可视化交互界面允许用户查看、编辑数据,在视图类中定义链表类图元对象及文字对象,以实现对图元对象和文字对象的保存。在用EVC开发测图系统中,各图元的绘制都是以类的形式实现的,所以相关的图元类要直接或间接的从Cobject类派生,这样就可以利用类的多态性,简化程序的结构,利于对程序的调试和修改。多态性是面向对象程序设计代码重用的一机制,CfileDialog,实现用户通过文件对话框的选定展点所用的文件,定义文件类Cfile,实现对文件的读取,并将数据文件分割成行,并用字符数组存储;
①通过下列循环语句,计算出文本文件的行数,“\n”代表的是换行符
2.1展点及绘制点号功能的实现
绘制数字地形图之前,必须将GPS RTK测定的碎步点展绘制在软件中,然后才能依据实际地物的连接关系,进行点的连线,进而绘制出地形图;并且需要将点号也同时显示在软件的绘图区域,因为这样如果发现图形的位置及相对位置关系出现问题,可以通过查找源数据以确定具体是哪个点出现错误。
GPS测得的数据存放在记事本中,此数据文件是以文本文件格式存在的,在展点前需要将此文件进行分割处理,得到点号、东坐标、北坐标及高程,之后还需要把这些数据转换处理成Double的数据格式。其主要过程如下:
定义文件对话框类CfileDialog,实现用户通过文件对话框的选定展点所用的文件,定义文件类Cfile,实现对文件的读取,并将数据文件分割成行,并用字符数组存储;
①通过下列循环语句,计算出文本文件的行数,“\n”代表的是换行符
int num=1;
for(int i=0;ix;i++)
{if (text.GetAt(i)==\n)
num=num+1;}
② 将数据文件分割成行,用字符数组存储
for(int j=0;jnum;j++)
{CString str[num]=text.SpanExcluding(_T(\n));
text= text.Right(text.GetLength()-text.GetLength());}
其中各函数的使用方法如下:
① CString pos_code=Str_txt.SpanExcluding(_T(,))
返回字符串“Str_txt”左侧起始位置到出现第一个“逗号”位置之间的字符,并将其保存在字符“pos_code”中;
②int Str_long=Str_txt.GetLength()
返回字符串“Str_txt”中字符的数目,并保存在整数类型“Str_long”中
③ CString code= Str_txt.Right(3)
返回字符串“Str_txt”中最右侧的三个字符,并保存在字符串“code”中
③ CString code= Str_txt.Right(3)
返回字符串“Str_txt”中最右侧的三个字符,并保存在字符串“code”中
④if (text.GetAt(i) ==\n)
判断字符串中,是否含有换行符“\n”,如果有则返回“真”值,没有则返回“假”值
(2)利用Cfile 类中的SpanExcluding()、GetLength()和Right()等函数实现对文件中每行数据进行分割,即得到“点号”、“东坐标”、“北坐标”和“高程”;
(3)利用atof()函数,将 “东坐标”、“北坐标”和“高程”字符串,转换成“Double”数据类型;
(4)定
文档评论(0)