




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、导航与定位实验报告 compilation of reports 20xx 报 告 汇 编 报告文档·借鉴学习 word 可· 导航与定位上机实习报告 学生姓名: 孔 令 周 班 学 号: xx100202x/11610211 指导教师: 黄鹰 、 徐战亚 中国地质大学(武汉)信息工程学院 1 xx 年 7 7 月 报告文档·借鉴学习 word 可· 实习一 s gps 设备使用 【实验目的】 (1) 熟悉 gps 设备的使用 (2) 熟悉 gps 绝对静态定位和绝对动态定位 (3) 使用 gps 设备得出某一点、某一线、某一面的相关数据 【实验设备】
2、动态 gps 接收机、静态 gps 接收机、天线、gps 定位设备 由于设别数目的限制,这次实习改用一个 google 的软件,获得 gps 数据,此图为软件中的一张截图,上面显示了精准度 157feet,卫星数目,每颗卫星的信号强度, 这张图那么显示了所在地的经度和纬度分别为东经 114 度 23 分 30.013 秒北纬30 度 31 分 19.809 秒。 报告文档·借鉴学习 word 可· 【实验步骤】 时间:xx 年 9 月 2 日中午 12 点 30 开始,下午三点中结束。 内容: 1 、 : 测量点:测量点在北区,从艺术与传媒学院开始,经过北宗,北区食堂,北门
3、,北区体育馆直到图书馆这一段路程,整个路线成 g 字型(如下列图)。 2 、 测量线:线的话主要是艺术与传媒学院到北宗与隧道口延伸的路相交的 丁字路口,然后从该路口一直到北区食堂下面,在就走向北区校门,进而转向体育馆侧边的路,绕过体育馆到达图书馆正门这样一个路线(如下列图)。 3 、 测量面:该路线主要包括了图书馆,北区篮球场,排球场,北一楼,北 区图书馆,经管院楼还有外国语学院楼。 报告文档·借鉴学习 word 可· 【实验结果】 局部数据(全部数据在 gpsdata.xls 中): 报告文档·借鉴学习 word 可· 实习二 gps 定位接口解析与开
4、发 【实验题目】 gps 信号解析 编写小程序读取 gps 信号并进行解析,将解析结果以一定形式展现出来。 根据老师用 gps 导航仪测量得到的测量数据进行解析,将 track.txt 中的数据进行解析,根据不同的格式按照 nmea-0183 协议对导航电文进行 gps 信息的解析: 1、使用语言不限:c , c+ ,c# ,java 2、对于获取信号可采用以一定时间间隔读取文件中 gps 信号的形式代替从串口中读取信号。 3、该实验根本要求能解析出空间信息(即解析 gprmc 格式的 gps 信号),其他信号格式的解析以及星历图的绘制可在完成根本要求之后进行扩展。 4、对解析出来的数据进行画
5、图处理,得到真正的轨迹。 【实验原理】 gps 设备通过对接收到的导航电文进行分析处理,计算出设备所在的经纬度、海拔、航速、航向等空间信息,并按照规定的协议将空间信息以及卫星信息进行组织,将有组织的数据解析出来然后做应用。 是 否 【实验设计】 1 、 设计思想 根据提供的 txt 文档,实现程序与文件之间的通信,读取 txt 中的内容,然后根据 gps初始化串口翻开串口 gps 信号结果应用 将所得到的字符拼接成字符串 按字节读取串口发出的字符 关闭串口 根据字符串内容进行 gsp 解析 终止字符? 报告文档·借鉴学习 word 可· 解析协议将其进行解析。得到经纬度坐标
6、,然后将经纬度坐标进行操作得到真实的轨迹路线图做出显示。 2 、 详细设计 声明对文件的关联对象fielstream对象,声明对文件进行读取的对象streamreader,然后对文件关联对象进行关联本地文件,然后用此关联对象初始化文件读取对象,然后对文件进行一步步的读取,对读取之后的数据进行立刻解析,根据解析协议的种类不同对不同类型的 gps 数据进行解析,然后做输出处理。根据文件的头部信息我们可以知道经纬度在那些地方,由于我们只需要解析 gprmc 数据,所以经纬度是很容易得到的数据,得到经纬度字符串之后就可以通过函数转换成可操作的经纬度数据,得到经纬度数据之后就转换成为屏幕坐标,然后就可以
7、划线了。经过划线处理连续的划线就成就了轨迹。关于平滑的问题:由于画出来的线可能会有一些点的问题会出现断线的可能和不连续,所以要做平滑处理,记录多个点,每两个点之间都划线一条就能满足平滑的要求。 否 是 【成果展示】 文件关联准备 文件关联 读取文件 读取数据准备 gpgga 文件解析 gpsga gprmc gpgsv 得到经纬无效数据 有效? 使用经纬度绘图 使用经纬度绘图 报告文档·借鉴学习 word 可· 报告文档·借鉴学习 word 可· 报告文档·借鉴学习 word 可· 【实验心得】 【调试报告】 1. 第一个遇到的问题是
8、读文件的问题: 因为要解析数据就必须要对文本进行解析,以前写的 c#程序都是比拟简单的程序,所有的操作都在内存中进行,只需要输入输出就够了,但是大型的问题光靠内存是远远不够的,数据量一大就不可能把所有的数据放在内存中,gps 这种数据大多来遥感数据和测绘数据,这些数据量都是几何倍数的增长,要在内存中进行处理根本不可能,所以这个问题也是学习 gps 所必须面临的问题,我第一次实习课根本就花在 c#文件读取上面了。一旦文件可以读取其他的就好办,主要是声明一个文件流对象,然后将此文件流对象关联文件,在用这个文件流对象初始化一个读取流对象,然后调用读取流对象的读取方法。这样就可以实现读取了。 报告文档
9、·借鉴学习 word 可· 2. tablecontrol 控件: 这是我第一次使用这个控件,真的挺好用的,效果也不错。考虑到要对不同类型的 gps 数据进行显示,如果全部放在一个界面中就显得非常臃肿,所以我将他们分开在几个页面中,这几个页面通过 tablecontrol 控件进行管理,这样就显得比拟有组织。 3. string 的分段: 因为要对不同数据进行判断,第一件事就是对数据集的头进行判断跟分类,可能是考虑到这一点,所有的 gps 数据都是非常规矩的,头的长度都是一样长的,这样判断起来也比拟方便,而且组织的时候都是用“,”做分段,这样就比拟容易对数据进行切割,然后处
10、理。 4. 经纬度坐标转化成为屏幕坐标的方法: 这是我早 google 上搜到的方法,首先把控制的警卫框架找到,最大经度减去最小经度,得到经度差。最大纬度减去最小纬度,得到纬度差。然后将经度差乘以 3600除以面板宽度,纬度差乘以 3600 除以面板宽度得到每秒经纬度代表的屏幕像素坐标。最后为了让图像分布均匀。将实际的经纬度转化成秒,然后减去最小经度,然后除以每秒经度代表的屏幕像素坐标。同理做纬度均匀。最后将坐标点得到然后划线。 【心得体会】 gps 是一个非常重要的技术,精确的 gps 数据时一把双刃剑。在好的一面他可以方便人们做很多东西,在今后的时代找东西将离不开地图,而地图如果要做到精确
11、的话就不得不用到 gps 数据。所以 gps 数据是定量解析的根底数据。所有的定量分析都需要解析并且处理这些数据,这在生活上会给我们很大的方便,不仅在查找,交通导航等等方面都会有重要的用途。所以这次实习对我们帮助很大,他让我们了解到生活中的 gps 数据的结构,让我们学以致用,了解熟悉 gps 并且爱上 gps,我们熟悉他,解析他,应用它。可以创造出许多方便的应用于社会价值。在医疗,规划,建设等方方面面都是重要的。 坏的一方面是过于精确的 gps 数据让我们变得不平安,不仅是数据被盗窃之后可能造成国家的平安问题,对方的导弹什么的可以精确打击。对我们的危险太大了。错误的解析也会造成许多社会问题,
12、比方修的地铁因为数据的偏差或解析的错误会造成重大的事故。所以我们处理 gps 数据肩负十分重要的使命。我们会好好处理这些数据的。 然后对于做这样一次实习我学到很多东西:认识到生活中真真正正的 gps数据的样子和解析过程。他所遵循的结构标准,还有认识到公共接口的重要性,他 让数据变得有规矩。让我树立了做好一名程序员的信心。让我们知道了做好一个 gps 解析与应用的重要性与根本方法。实习让我们有了一些经验与许多信心。 最后做完期待已久的 gps 室外实习以后,我感觉现在的卫星技术已经非常兴旺了。在看不见的天上居然有至少 7 颗卫星在飞着,想想都觉得不可思议。更不可思议的是我们可以与他对话,获得他得
13、到的信息。这更让我感到 gps技术室一门很有前途很有魅力的技术! 报告文档·借鉴学习 word 可· 代码: 第一题: string foresix; filestream sfile; streamreader sreader; public int nextpage( (string str ) int flag = -1; ; for ( (int i = 0 ; i < str.length ; i+ ) if ( (i < 6 ) foresix += str i ; textbox1.text += str i ; if ( (foresix = &
14、quot;$gpgsa" ) tabctl.selectedtab = gpgsa; ; flag = 3; ; else if ( (foresix = "$gpgga" ) tabctl.selectedtab = gpgga; ; flag = 2; ; else if ( (foresix = "$gprmc" ) tabctl.selectedtab = gprmc; ; 报告文档·借鉴学习 word 可· flag = 1; ; else if ( (foresix = "$gpgsv" )
15、tabctl.selectedtab = gpgsv; ; flag = 4; ; else messagebox.show( ("不?存? ?在¨? 此? ?种?格?式? ?!ê?" ); foresix = "" ; return flag; ; /显示: public void showpage( (int flag, ,string str ) if ( (flag = 1 ) textbox2.text = "" ; textbox3.text = "" ; textbox4.text
16、 = "" ; textbox5.text = "" ; textbox6.text = "" ; textbox7.text = "" ; textbox8.text = "" ; 报告文档·借鉴学习 word 可· textbox9.text = "" ; textbox10.text = "" ; textbox11.text = "" ; textbox12.text = "" ; tex
17、tbox13.text = "" ; textbox14.text = "" ; for ( (int i = 7 ; i <= 8 ; i+ ) textbox7.text += str i ; for ( (int i = 9 ; i <= 10 ; i+ ) textbox6.text += str i ; for ( (int i = 11 ; i <= 16 ; i+ ) textbox5.text += str i ; if ( (str 18 = "a" ) textbox12.text = "
18、;有? d效? ì" ; else textbox12.text = "无t效? ì" ; 报告文档·借鉴学习 word 可· for ( (int i = 20 ; i <= 21 ; i+) ) textbox11.text += str i ; for ( (int i = 22 ; i <= 28 ; i+ ) textbox10.text += str i ; for ( (int i = 32 ; i <= 34 ; i+ ) textbox9.text += str i ; for ( (in
19、t i = 35 ; i <= 41 ; i+ ) textbox8.text += str i ; for ( (int i = 45 ; i <= 49 ; i+ ) textbox13.text += str i ; for ( (int i = 51 ; i <= 56 ; i+ ) textbox14.text += str i ; for ( (int i = 58 ; i <= 59 ; i+ ) textbox4.text += str i ; 报告文档·借鉴学习 word 可· for ( (int i = 60 ; i <=
20、 61 ; i+ ) textbox3.text += str i ; for ( (int i = 62 ; i <= 63 ; i+ ) textbox2.text += str i ; tabctl.selectedtab=start; ; sfile = new filestream( ("track.txt" , filemode.open , fileaess.read ); sreader = new streamreader( (sfile ); button1.enabled = false; ; button2.enabled = false; ;
21、 label55.left -= 2; ; if ( (label55.right < 0 ) label55.left = this.width; ; timer1.enabled = false; ; string str = sreader.readline (); int flag=nextpage( (str ); button4.enabled = false; ; button1.enabled = true; ; button2.enabled = true; ; showpage( (flag , str ); 第二题: 报告文档·借鉴学习 word 可
22、83; using system; ; using system.collections.generic; ; using system.componentmodel; ; using system.data; ; using system.drawing; ; using system.linq; ; using system.text; ; using system.windows.forms; ; using system.io; ; namespace gps public partial class form1 : form bitmap bitm; ; graphics g; ;
23、pen pen = new pen( (new solidbrush( (color.black ), 2.0f ); point point = new point 4 ; filestream sfile; ; streamreader sreader; ; 报告文档·借鉴学习 word 可· int i = 4; ; int j = 0; ; double scalex , scaley, ,minx, ,maxy; ; string textline = file.readalllines( ("track.txt" ); int lines;
24、;/track共2有? d多¨¤少? ¨? 行d public form1 () initializecomponent (); bitm = new bitmap( (this.panel1.width , this.panel1.height ); g = graphics.fromimage( (bitm ); lines = textline.length; ; private void button1click( (object sender , eventargs e) ) /panel1.controls.clear(); label1.visibl
25、e = false; ; picturebox1.visible = false; ; timer1.enabled = true ; 报告文档·借鉴学习 word 可· sfile = new filestream( ("track.txt" , filemode.open , fileaess.read ); sreader = new streamreader( (sfile ); button1.enabled = false; ; picturebox2.visible = true; ; picturebox3.visible = true;
26、 ; picturebox4.visible = true; ; picturebox5.visible = true; ; picturebox6.visible = true; ; picturebox7.visible = true; ; picturebox8.visible = true; ; picturebox9.visible = true; ; picturebox10.visible = true; ; picturebox11.visible = true; ; private void panel1paint( (object sender , painteventar
27、gs e) ) controlpaint.drawborder( (e.graphics, ,panel1.clientrectangle, ,color.or 报告文档·借鉴学习 word 可· ange, ,buttonborderstyle.solid ); public void clin () textbox1.text = "" ; textbox2.text = "" ; textbox3.text = "" ; textbox4.text = "" ; textbox5.text
28、 = "" ; if ( (lines <= 30) ) timer1.enabled = false; ; private void timer1tick( (object sender , eventargs e) ) if ( (lines >30) ) clin (); 报告文档·借鉴学习 word 可· string tempstr1 , tempstr2; ; string data; ; string strtime = new string 4 ; string stravaliable = new string 4 ; st
29、ring strjd = new string 4 ; string strwd = new string 4 ; int x = new int 4 ; int y = new int 4 ; double screenx = new double 4 ; double screeny = new double 4 ; while ( (i > 0 ) ) string str = sreader.readline (); lines-; ; data = str.split( ("," ); stravaliable j = data 2 ;/有? d效?
30、36;位? if ( (str 3 = "r" && str 4 = "m" && str 5 = "c" && stravaliable j = "a") ) 报告文档·借鉴学习 word 可· i-; ; tempstr1 = data 3 ; tempstr2 = data 5 ; screenx j = double.parse( (tempstr2 ) * 3600 / scalex - minx; ; screeny j = maxy
31、- double.parse( (tempstr1 ) * 3600 / scaley; ; x j = ( (int) )screenx j ; y j = ( (int) )screeny j ; strtime j = data 1 ;/时? ? ? 间? strjd j = data 5 ; strwd j = data 3 ; j+; ; if ( (double.parse( (strtime 0 ) >= 075245.000) ) 报告文档·借鉴学习 word 可· pen = new pen( (new solidbrush( (color.red
32、), 2.0f ); for ( (int a = 0 ; a < 4 ; a+) ) point a .x = x a ; point a .y = y a ; for ( (int a = 0 ; a <= 1 ; a+) ) textbox3.text += strtime 0 a ; for ( (int a = 2 ; a <= 3 ; a+) ) textbox4.text += strtime 0 a ; for ( (int a = 4 ; a <= 9 ; a+) ) 报告文档·借鉴学习 word 可· textbox5.text
33、+= strtime 0 a ; textbox1.text = strjd 0 ; textbox2.text = strwd 0 ; if ( (stravaliable 0 = "a") ) textbox6.text = "有? d效? ì" ; else textbox6.text = "无t效? ì" ; clin (); g.drawline( (pen , point 0 , point 1 ); /this.panel1.backgroundimage = bitm; /panel1.refres
34、h(); for ( (int a = 0 ; a <= 1 ; a+) ) textbox3.text += strtime 1 a ; 报告文档·借鉴学习 word 可· for ( (int a = 2 ; a <= 3 ; a+) ) textbox4.text += strtime 1 a ; for ( (int a = 4 ; a <= 9 ; a+) ) textbox5.text += strtime 1 a ; textbox1.text = strjd 1 ; textbox2.text = strwd 1 ; if ( (strav
35、aliable 1 = "a") ) textbox6.text = "有? d效? ì" ; else textbox6.text = "无t效? ì" ; clin (); g.drawline( (pen , point 1 , point 2 ); /this.panel1.backgroundimage = bitm; 报告文档·借鉴学习 word 可· /panel1.refresh(); for ( (int a = 0 ; a <= 1 ; a+) ) textbox3.t
36、ext += strtime 2 a ; for ( (int a = 2 ; a <= 3 ; a+) ) textbox4.text += strtime 2 a ; for ( (int a = 4 ; a <= 9 ; a+) ) textbox5.text += strtime 2 a ; textbox1.text = strjd 2 ; textbox2.text = strwd 2 ; if ( (stravaliable 2 = "a") ) textbox6.text = "有? d效? ì" ; else textbox6.text = "无t效? ì" ; 报告文档·借鉴学习 word 可· clin (); /this.panel1.backgroundimage = bitm; /panel1.refresh(); g.drawline( (pen , point 2 , point 3 ); for ( (int a = 0 ; a <= 1 ; a+) ) textbox3.text += strtime 3 a ; f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安卫安全培训公司课件
- 海陆的变迁课件
- 2024-2025学年北京汇文中学教育集团下学期期中考试七年级数学试题
- 农村简装修住房租赁协议书5篇
- 安徽省桐城市2026届化学九年级第一学期期中综合测试试题含解析
- 标准的知识产权保护协议书的范例7篇
- 宅基地住宅房屋建设合同范文4篇
- 2025年教师招聘之《幼儿教师招聘》考前冲刺测试卷及答案详解(基础+提升)
- 教师招聘之《幼儿教师招聘》考试模拟试卷含答案详解【典型题】
- 海棠苏轼课件
- 《医疗体检质量控制》课件
- 《高血压患者饮食指导》课件
- 《综合用药培训精粹》课件
- 赌博的课件教学课件
- 降低导管滑脱发生率PDCA项目
- 数据安全风险监测和预警管理流程
- 《法理学》课件 法理学课件
- 2025年芜湖鸠兹水务有限公司下属子公司招聘笔试参考题库含答案解析
- 小儿哮喘支气管哮喘中医临床诊疗方案
- 高铁安检培训
- 应急药箱清单及检查表
评论
0/150
提交评论