汽车导航GPS软件设计.doc
《汽车导航GPS软件设计.doc》由会员分享,可在线阅读,更多相关《汽车导航GPS软件设计.doc(24页珍藏版)》请在沃文网上搜索。
1、GIS软件设计实验报告 专 业 学 号 姓 名 一、软件设计目的:通过构建嵌入式终端模块、服务器端模块、浏览端模块这三个模块,掌握利用windows mobile模拟汽车导航、SQL server完成车辆GPS数据读取管理、google earth API完成车辆位置信息浏览,并以此增强C#编程能力。二、软件设计内容:本次软件设计内容分三部分模块进行,该三个模块分别为嵌入式终端模块、服务器端模块、浏览端模块,最后这三个模块集成为该小组软件系统,三个模块需要完成的内容如下所示:嵌入式终端模块:该部分模拟汽车导航终端软件部分。基本功能要求:能实现电子地图浏览、读取模拟GPS数据、GPS数据显示(即
2、当前位置显示)、GPS数据上传至服务器数据库。软件推荐:windows mobile服务器端模块:主要完成车辆GPS数据读取管理。基本功能要求:读取终端上传过来的GPS数据,并存储。支持对车辆GPS数据进行检索查询等操作、终端当前位置、历史轨迹查询需求。软件推荐:SQL server、C#语言浏览端模块:完成车辆位置信息浏览基本功能。功能要求:在web 浏览器上显示车辆当前位置、移动轨迹、历史轨迹等。软件推荐:google earth API 、灵图API、ASP.net三、软件实现数据准备:1、 遥感影像配准(WGS_84),并导出.img文件(已包含坐标信息)1.1加载影像图1.2为Lay
3、ers定义坐标系统PredefinedGeograpic Coorinate SystemsWorldWGS 19841.3将配准好的图导出2、 SDE中建立数据库,要素类Car,并注册版本添加GlobalID(不确定是否每一步都必要,但这样做肯定没问题)如图3、 制作mxd地图文档,添加img文件和Car,4、 发布地图服务,5、 利用ArcToolboxMobile ToolsGenerate Mobile Service Cache工具发布的服务转换为bin文件,作为mobileservice读取的数据6、 后台建立数据库,建立表,设置如图字段7、 GPS数据的准备,建立文本文件,自定义
4、数据格式,点名、X坐标、Y坐标、嵌入式汽车导航终端软件系统(1)窗口界面设计向窗口拖入7个button控件,修改它们的text属性,分别为加载、放大、缩小、漫游、停止、单步显示、自动显示;向窗体拖入1个Lable控件,将它的text属性改为位置列表;向窗体拖入一个Listbox控件、一个Timer控件和一个map控件。窗口设计如下:(2)代码设计1)双击加载button控件,写入代码,读取存放在txt文档中的GPS数据,代码如下:string strLine = ; string filename = TempGPS数据.txt; try FileStream aFile = new File
5、Stream(filename, FileMode.Open); StreamReader sr = new StreamReader(aFile); strLine = sr.ReadLine(); while (strLine != null) if (strLine != null) string strArr = strLine.Split(,); MyClass PointsCollection = new MyClass(); /PointsCollection.name=strArr0; namei+ = strArr0; PointsCollection.Coordinate.
6、X = Convert.ToDouble(strArr1); PointsCollection.Coordinate.Y = Convert.ToDouble(strArr2); Pointkindscc.Add(PointsCollection.Coordinate); strLine = sr.ReadLine(); sr.Close(); catch (IOException ex) MessageBox.Show(ex.ToString(); 2)双击放大butto控件,写入代码,实现电子地图的放大功能,代码如下:this.map1.CurrentMapAction = this.zo
7、omInMapAction1;3)双击缩小button控件,写入代码,实现电子地图的缩小功能,代码如下:this.map1.CurrentMapAction = this.zoomOutMapAction1;4)双击漫游button控件,写入代码,实现电子地图的漫游功能,代码如下:this.map1.CurrentMapAction = this.panMapAction1;5)双击单步显示button控件,写入代码,实现单击一次按钮显示一次汽车当前位置的功能,代码如下:DeleteAll(); ShowCar(t); if (t 29) t = t + 1; else t = 0;priva
8、te void DeleteAll() FeatureLayer featurelayer = this.mobileService1.Layers0 as FeatureLayer; QueryFilter queryfilter = new QueryFilter(); FeatureDataTable featuredatatable = featurelayer.GetDataTable(queryfilter, null); foreach (FeatureDataRow row in featuredatatable.Rows) row.Delete(); featuredatat
9、able.SaveInFeatureLayer(); private void ShowCar(int t) ESRI.ArcGIS.Mobile.Geometries.Point tp = new ESRI.ArcGIS.Mobile.Geometries.Point(Pointkindscct); string selectlayername = Car; m_selectedFeatureLayer = this.mobileService1.Layersselectlayername as FeatureLayer; FeatureDataTable featureDataTable
10、= m_selectedFeatureLayer.GetDataTable();/要素表对象featureDataTable新增一条空的记录 FeatureDataRow editedFeature = featureDataTable.NewRow(); /获取要素图层对象的几何列,并把SketchGraphicLayer图层的几何值赋值给他 int geometryIndex = m_selectedFeatureLayer.GeometryColumnIndex;editedFeaturegeometryIndex = tp; / 把新增的记录赋回到要素数据表中 featureDataT
11、able.Rows.Add(editedFeature);/保存结果 featureDataTable.SaveInFeatureLayer();string X = tp.Coordinate.X.ToString(); string Y = tp.Coordinate.Y.ToString(); this.listBox1.Items.Add(namet + + X + + Y); this.listBox1.SelectedIndex = k+; UpLoad(namet, X, Y); 6)双击自动显示button控件,写入代码,实现每隔一秒显示汽车的当前位置,代码如下:this.ti
12、mer1.Enabled = true;private void timer1_Tick(object sender, EventArgs e) DeleteAll(); ShowCar(t); if (t 29) t = t + 1; else t = 0; 7)双击停止button控件,写入代码,实现程序的停止,代码如下:this.timer1.Enabled = false;截图如下所示: 图1为显示系统界面 图2为单步显示结果 图3为自动显示结果 图4为停止结果图1图2图3 图4(3)GPS数据上传至服务器数据库1)建立Webservices,进行数据库连接,代码如下: public
13、Service () /如果使用设计的组件,请取消注释以下行 /InitializeComponent(); public SqlConnection connection = new SqlConnection(Data Source=du-96e8d5846746;Initial Catalog=GISshixi;User ID=sa;Password=sa); WebMethod(Description = WriteGPS, EnableSession = false) public void WriteGPS(string dianming, string X,string Y,st
14、ring datetime) connection.Open(); string dian = string.Format(01, , dianming); string XX = string.Format(01, , X); string YY = string.Format(01, , Y); string tt = string.Format(01, , datetime); string sqlstr = INSERT INTO GPS信息(点号,X坐标,Y坐标,时间) VALUES ( + dian + , + XX +, + YY +, + tt + ); System.Data
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 导航 GPS 软件设计