6步学会GPS应用程序开发简易教程

上传人:pu****.1 文档编号:511292053 上传时间:2023-10-13 格式:DOCX 页数:11 大小:226.30KB
返回 下载 相关 举报
6步学会GPS应用程序开发简易教程_第1页
第1页 / 共11页
6步学会GPS应用程序开发简易教程_第2页
第2页 / 共11页
6步学会GPS应用程序开发简易教程_第3页
第3页 / 共11页
6步学会GPS应用程序开发简易教程_第4页
第4页 / 共11页
6步学会GPS应用程序开发简易教程_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《6步学会GPS应用程序开发简易教程》由会员分享,可在线阅读,更多相关《6步学会GPS应用程序开发简易教程(11页珍藏版)》请在金锄头文库上搜索。

1、六步学会GPS应用程序开发简易教程开发平台:操作系统: Window XP开发环境: Visual Studio 2005 Windows Mobile 5.0 Pocket PC SDK.Net Compact Framework 2.0 (VS2005 自带) ActiveSync 4.0 移动设备:多普达S800(带GPS芯片) 1.环境的搭建1)安装 Visual Stuido 20052)安装ActiveSync4.0(或更新版本)3)安装 Windows Mobile 5.0 Pocket PC SDK(VS2005 默认安装 WM2003SDK,所以 需要手动安装 WM5 的 S

2、DK)以上所需在网上均可找到下载,安装过程应该比较简单,没有什么复杂的设置所以 略过不谈.有不明白的可以发E-Mail咨询.1)启动VS2005.第一次启动会提示设置默认开发模式,可以选择Visual C#.2)点击 文件-新建项目如图:a)项目类型:选择Visual C#d智能设备Windows Mobile 5.0 Pocket PC(如果没有该选项则说明没有安装WM5.0SDK或者安装失败)b) 模板:选择设备应用程序即可c) 输入名称,位置,解决方案名称等信息后点击确定即可.3) 点击文件-添加-现有项目找到.Program FilesWindows CE Toolswce500Win

3、dows Mobile 5.0 Pocket PC SDKSamplesCsGps 即可找到 Microsoft.WindowMobile.Samples.Location.csproj 项目文件,该项目封装了访问 GPS 硬件的一些 API 函数.使用非常方便.没有找到 该文件的话请确认是否安装了 WM5.0SDK.百找范医iDJi;知!E曲J工且”3 P lihdov !sN-ob l L e. S-unlLo l otL.匚Lpr d j打开撕置顶目丈件 1*11 vbdproj : * vddproj ;* dap:* fidn-文跑g.文件矣里辽1打开后即可添加到现有项目中.如下图示

4、:解决方案资源管理器-Microsoft. WindowsMo.仃4 X解决方卑Te毗GFG 住 个顶目-Mi crOEcft. WirLdowsMobile. S:=unples. Loca.ti on(ti-Properti es引用D e e e eM i ruit esSec ondE. c sD evi ceS t at eCh:=LTLge ilEven t Ar gs.GPS. ceGpeDeviceStsg asGpeFoeiti cm. csLu匚宜tiorLCh:=LXLgeilEventJkrgs. csUtils, csstGPSFr op er ti es 引用For

5、ml. ce图| For ml. Desi gnei-. csF or m 1. re exFrogi_:=uti. cses4)设置项目依赖性点击项目-项目依赖性因为要在 TestGPS 项目中 引用添加 的 项目Microsoft.WindowsMobile.Samples.Location,所以 TestGPS 项目依 赖于依赖项生成顺序项目TestGFSv依赖于:* Microsoft. WindowsMobile. Samples. Location_TO 生成顺序自然就是TestGPS在后了.5) 添加项目引用 点击-项目-添加引用选择项目页,选择当前项目后确定.即可在 TestG

6、PS 项目的引用列表中看到对该 项目的引用.添加对项目类包的引用.Furml. Desi gner. ce .sFora 1 - cs* Forml. cs 设i十*起贻页对象方訂:卷 TsetGFS. Form 1VForml曰using System;using System. CullectiunE. GerLeri c;using System. ComponentModel;using System. D at a;using Syst em. Dr aw ing;using System. Text;ueing Syst em. W indowe . F arms;ueing Mi

7、 cr oeot. WindijweMobi 1 e. S:=uripleE. Locati on;B rL:=LiriHEp:=Lce TeEtGFSi publi a par t i al class Form1 : FarmE3publi c Farm 1 ()IIni ti :=Lli zeComporLent;pr ivat已 voi d Form 1 _Load (ohj ect sEvetltArgs e)6)说明在引入了类包之后,我们就可以在程序中引用已经封装好的类来访问GPS 了在项 目中我们可以看到常用的几个类:DegreesMinutesSeconds.cs /主要负责经

8、纬度坐标度分秒的转换 DeviceStateChangedEventArgs.es /GPS设备状态改变时触发的事件 GPS.cs /操作GPS的类,主要有负责Open()和Close()GPS设备. GpsDeviceState.cs /GPS 设备的几种状态 GpsPosition.cs /处理经纬度坐标的类.LocationChangedEventArgs.cs /位置改变时触发的事件(即经纬度坐标发生变化) 需要说明的是,我在使用GpsPosition类的Longitude和Latitude属性获取经纬度坐 标的时候总是出现 DividedByZeroException 的例外.经过观

9、察发现是由于对度分 秒格式的经纬度坐标值转化为Decimal Degrees表达形式的时候出错(看了代码之 后大家理解的会比我说的更明白,所以看不明白这一点的不必介意因为我的表述 也不是很清楚!),而我需要的其实就是最原始的 double 类型的经纬度坐标值,不需 要进行任何转换即可.所以我对 GpsPosition 类进行了简单的修改以满足我的需 要.在 GpsPositon 类的末尾加入一下几行代码.public double DoubleLatitudeget return dblLatitude; public double DoubleLongtitudeget return dbl

10、Longitude; 以上提到这些只是为可能会和我有同样需求的初学的网友提个醒,免得走弯路.1. 附参考源代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Microsoft.WindowsMobile.Samples.Location;namespace TestGPSpublic partial class F

11、orm1 : Form/GPS设备状态对象GpsDeviceState device = null;/GPS位置对象GpsPosition position = null;/GPS对象Gps gps = new Gps();public Form1()InitializeComponent();private void Form1_Load(object sender, EventArgs e)gps.DeviceStateChanged+=newDeviceStateChangedEventHandler(gps_DeviceStateChanged); gps.LocationChange

12、d+=newLocationChangedEventHandler(gps_LocationChanged);/位置改变时更新坐标数据sender,sender,protected void gps_LocationChanged(objectLocationChangedEventArgs args)position = args.Position;/gps设备状态改变时更新设备的状态voidgps_DeviceStateChanged(objectDeviceStateChangedEventArgs args)device = args.DeviceState;菜单:打开GPS设备pri

13、vate void open_gps_Click(object sender, EventArgs e)if (!gps.Opened)gps.Open();open_gps.Enabled = false;close_gps.Enabled = true;菜单:关闭GPS设备private void close_gps_Click(object sender, EventArgs e)if (gps.Opened)gps.Close();open_gps.Enabled = true;close_gps.Enabled = false;菜单:退出private void exit_Click

14、(object sender, EventArgs e)if (gps.Opened)gps.Close();Close();/获取经纬度坐标值private void getdata_Click(object sender, EventArgs e)string str;if (!gps.Opened)str = GPS设备没有打开,请点击打开GPS菜单后重试!”;MessageBox.Show(str);return;if (device = null)str = GPS设备打开错误,请重新插拔GPS卡后重试!;MessageBox.Show(str);return;if (position != null)string strJd; /经度string strWd; /纬度strJd = position.DoubleLongtitude.ToString();st

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号