1、4、对解析出来的数据进行画图处理,得到真正的轨迹。【实验原理】GPS设备通过对接收到的导航电文进行分析处理,计算出设备所在的经纬度、海拔、航速、航向等空间信息,并按照规定的协议将空间信息以及卫星信息进行组织,将有组织的数据解析出来然后做应用。 是 否 【实验设计】1、设计思想根据提供的txt文档,实现程序与文件之间的通信,读取txt中的内容,然后根据GPS解析协议将其进行解析。得到经纬度坐标,然后将经纬度坐标进行操作得到真实的轨迹路线图做出显示。2、详细设计 声明对文件的关联对象Fielstream对象,声明对文件进行读取的对象Streamreader,然后对文件关联对象进行关联本地文件,然后
2、用此关联对象初始化文件读取对象,然后对文件进行一步步的读取,对读取之后的数据进行立刻解析,根据解析协议的种类不同对不同类型的GPS数据进行解析,然后做输出处理。根据文件的头部信息我们可以知道经纬度在那些地方,由于我们只需要解析GPRMC数据,所以经纬度是很容易得到的数据,得到经纬度字符串之后就可以通过函数转换成可操作的经纬度数据,得到经纬度数据之后就转换成为屏幕坐标,然后就可以划线了。经过划线处理连续的划线就成就了轨迹。关于平滑的问题:由于画出来的线可能会有一些点的问题会出现断线的可能和不连续,所以要做平滑处理,记录多个点,每两个点之间都划线一条就能满足平滑的要求。 否【成果展示】【实验心得】
3、【调试报告】1.第一个遇到的问题是读文件的问题:因为要解析数据就必须要对文本进行解析,以前写的C程序都是比较简单的程序,所有的操作都在内存中进行,只需要输入输出就够了,但是大型的问题光靠内存是远远不够的,数据量一大就不可能把所有的数据放在内存中,GPS这种数据大多来遥感数据和测绘数据,这些数据量都是几何倍数的增长,要在内存中进行处理根本不可能,所以这个问题也是学习GPS所必须面临的问题,我第一次实习课基本就花在C#文件读取上面了。一旦文件可以读取其他的就好办,主要是声明一个文件流对象,然后将此文件流对象关联文件,在用这个文件流对象初始化一个读取流对象,然后调用读取流对象的读取方法。这样就可以实
4、现读取了.2.tablecontrol控件:这是我第一次使用这个控件,真的挺好用的,效果也不错。考虑到要对不同类型的GPS数据进行显示,如果全部放在一个界面中就显得非常臃肿,所以我将他们分开在几个页面中,这几个页面通过tablecontrol控件进行管理,这样就显得比较有组织.3.string的分段:因为要对不同数据进行判断,第一件事就是对数据集的头进行判断跟分类,可能是考虑到这一点,所有的GPS数据都是非常规矩的,头的长度都是一样长的,这样判断起来也比较方便,而且组织的时候都是用“,”做分段,这样就比较容易对数据进行切割,然后处理。4.经纬度坐标转化成为屏幕坐标的方法:这是我早google上
5、搜到的方法,首先把控制的警卫框架找到,最大经度减去最小经度,得到经度差.最大纬度减去最小纬度,得到纬度差。然后将经度差乘以3600除以面板宽度,纬度差乘以3600除以面板宽度得到每秒经纬度代表的屏幕像素坐标。最后为了让图像分布均匀.将实际的经纬度转化成秒,然后减去最小经度,然后除以每秒经度代表的屏幕像素坐标。同理做纬度均匀。最后将坐标点得到然后划线.【心得体会】 GPS是一个非常重要的技术,精确的GPS数据时一把双刃剑。在好的一面他可以方便人们做很多东西,在今后的时代找东西将离不开地图,而地图如果要做到精确的话就不得不用到GPS数据。所以GPS数据是定量解析的基础数据.所有的定量分析都需要解析
6、并且处理这些数据,这在生活上会给我们很大的方便,不仅在查找,交通导航等等方面都会有重要的用途。所以这次实习对我们帮助很大,他让我们了解到生活中的GPS数据的结构,让我们学以致用,了解熟悉GPS并且爱上GPS,我们熟悉他,解析他,应用它。可以创造出许多方便的应用于社会价值。在医疗,规划,建设等方方面面都是重要的. 坏的一方面是过于精确的GPS数据让我们变得不安全,不仅是数据被盗窃之后可能造成国家的安全问题,对方的导弹什么的可以精确打击。对我们的危险太大了。错误的解析也会造成许多社会问题,比如修的地铁因为数据的偏差或解析的错误会造成重大的事故.所以我们处理GPS数据肩负十分重要的使命。我们会好好处
7、理这些数据的. 然后对于做这样一次实习我学到很多东西:认识到生活中真真正正的GPS数据的样子和解析过程。他所遵循的结构规范,还有认识到公共接口的重要性,他 让数据变得有规矩。让我树立了做好一名程序员的信心.让我们知道了做好一个GPS解析与应用的重要性与基本方法.实习让我们有了一些经验与许多信心。 最后做完期待已久的GPS室外实习以后,我感觉现在的卫星技术已经非常发达了。在看不见的天上居然有至少7颗卫星在飞着,想想都觉得不可思议。更不可思议的是我们可以与他对话,获得他得到的信息。这更让我感到GPS技术室一门很有前途很有魅力的技术!代码:第一题:string foresix;FileStream
8、sFile;StreamReader sReader;public int NextPage(string str) int flag = 1;for (int i = 0; i 30) clin(); string tempstr1, tempstr2; string data; string str_time = new string4; string str_avaliable = new string4; string str_jd = new string4; string str_wd = new string4; int x = new int4; int y = new int
9、4; double screenX = new double4; double screenY = new double4; while (i 0 ) string str = sReader.ReadLine(); lines-; data = str.Split(,); str_avaliablej = data2;/有位? if (str3 = R & str4 = M & str5 = C & str_avaliablej = ”A) i-; tempstr1 = data3; tempstr2 = data5; screenXj = double.Parse(tempstr2) *
10、3600 / scaleX - minX; screenYj = maxY - double。Parse(tempstr1) 3600 / scaleY; xj = (int)screenXj; yj = (int)screenYj; str_timej = data1;/时间? str_jdj = data5; str_wdj = data3; j+; if (double。Parse(str_time0) = 075245。000) pen = new Pen(new SolidBrush(Color.Red), 2。0f); for (int a = 0; a 4; a+) pointa
11、。X = xa; pointa。Y = ya; for (int a = 0;= 1; textBox3。Text += str_time0a; for (int a = 2; a = 3; textBox4。Text += str_time0a; for (int a = 4;= 9; textBox5.Text += str_time0a; textBox1。Text = str_jd0; textBox2.Text = str_wd0; if (str_avaliable0 = A textBox6。有 else textBox6.Text = 无T效 clin(); g.DrawLin
12、e(pen, point0, point1); /this。BackgroundImage = bitM;Refresh(); a = 1;Text += str_time1a; for (int a = 2;= 3; textBox4.Text += str_time1a; for (int a = 4; a = 9; textBox5。Text += str_time1a; textBox1.Text = str_jd1; textBox2。Text = str_wd1; if (str_avaliable1 = ”A”) textBox6.Text = ”有 textBox6.Text
13、= ”无T效 g。DrawLine(pen, point1, point2); /this.panel1。BackgroundImage = bitM;Refresh();= 1; textBox3.Text += str_time2a;Text += str_time2a; textBox5.Text += str_time2a;Text = str_jd2;Text = str_wd2; if (str_avaliable2 = ”A g.DrawLine(pen, point2, point3); a = 1;Text += str_time3a; a = 3;Text += str_time3a;Text += str_t
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1