基于移动GIS的GPS定位导航系统
S 定位导航和移动GIS 数据采集的关键环节,地图质量的好坏直接关系到定位导航的精度和数据采集的质量。实现移动设备的定位导航系统,离不开GPS 模块,下面将介绍一种开发基于智能设备的定位导航系统的新技术-GPS中间驱动。
3 GPS中间驱动(GPS Intermediate Driver)
GPS 中间驱动(GPS Intermediate Driver),即在开发人员和GPS 硬件设备之间建立一个中间层,开发人员无需直接访问GPS 硬件,而是通过访问中间驱动提供的API 函数,间接与GPS 通讯。GPS 中间驱动是微软公司在Windows Mobile 系列5.0 版本之后,提出的一个基于智能设备的GPS 应用程序开发理念。
GPSID 的提出拥有很高的商业价值,对于GPS 硬件制造商:GPSID 可以和应用程序无缝接合;对于应用程序提供商:它可以和任意支持GPSID 的GPS 设备进行整合。
传统的GPS 开发方式,多采用编程语言直接操作GPS 硬件部分,进行GPS 数据文件流工作,完全人为的解析NMEA 数据,来实现串口通讯;或者使用已经成型的移动GIS 软件的GPS 功能,比如,ESRI 公司的ArcPad、超图公司的eSuperMap 等。GPS 中间驱动技术,相对于传统的开发方式拥有很多优点,比如:
1)开发速度快、效率高;2)拥有友好的API 接口函数;3)兼容传统的GPS 数据文件流操作;4)可以在PC 端进行仿真模拟;5)支持多个应用程序同时访问一个GPS 设备;6)使解析NMEA-0183 数据变得简单。
GPS 中间驱动的工作流程如图1 所示:
通过程序语言调用GPSID 提供的API 函数,完成相应的GPS 参数设置(端口、波特率)及端口的打开关闭操作;API 函数修改操作系统注册表信息,实现对GPS 硬件的实际访问,GPS 设备响应访问信号,完成GPS 数据的接收与通讯。目前,GPSID 提供的API 函数包括以下四种:1)GPSOpenDevice:打开GPS 设备,建立与GPSID 的通讯;2)GPSCloseDevice:关闭GPS 设备;3)GPSGetPosition:获取当前点位信息,包括经纬度、高程等;4)GPSGetDeviceState:获取GPS 设备状态信息,包括接收卫星个数、定位质量、时间等。
通过上述四种API 函数,应用程序开发人员可以获得定位与导航数据,完成对GPS 设备的所有操作。
从GPS 设备中接收的位置数据,并不能直接的运用到实际的定位与导航之中,其间还存在坐标系统的转换问题,下面将探讨GPS 数据匹配到PDA 电子地图上的坐标转换问题。
4 GPS坐标转换
智能设备GPS 接收的NMEA 格式数据为WGS-84 坐标系下的大地坐标,即用经纬度高程(B,L,H)表示的坐标;PDA 电子地图使用的是国家大地坐标系或地方独立坐标系下的直角坐标,是用(X,Y)表示的平面坐标。因此,在不考虑高程参与转换的前提下,通过坐标转换实现坐标系的统一。
转换过程分为两步,第一步将WGS-84 椭球下的(B,L)坐标,通过高斯正算,转换为该椭球下的平面坐标;第二步将高斯平面坐标,通过解析变换法,转换为国家大地坐标系或地方独立坐标系下的平面坐标(X,Y)。
4.1 高斯正算
根据不同的精度要求可以给出不同的高斯正算公式,下面采用一种适合于计算机编程实现的电算公式,使用1975 国际椭球参数,平面坐标精度可达0.001m。
4.2 平面坐标转换
根据地方的实际情况和需要,将高斯平面坐标转换为地方独立坐标系下的平面坐标(X,Y),采用四参数转换模型。使用此模型求解平面坐标分为三个步骤,第一步是将WGS-84 平面坐标系进行旋转;第二步将旋转后的WGS-84 平面坐标系与地方平面坐标系进行尺度统一;第三步进行平移。
以下为模型的具体形式:
其中: , 通过采集两坐标系下至少三对的公共点数据,使用最小二乘原理,列出误差方程,求解出四个转换参数。有了转换参数,就能够通过上式,求解出其它点在地方独立坐标系下的平面坐标。
5 实例开发
实例硬件条件为HTC Touch HD 智能手机和内置嵌入式GPS 模块(定位精度10m);坐标系为阜新独立坐标系;开发平台为Visual Studio.NET(2008),加载ArcGIS Mobile SDK 组件。
系统作为移动GIS 的一部分,采用与移动GIS相同的开发架构,即Smart Client(智能客户端)架构,架构如图2 所示:
该模式继承并结合C/S、B/S 模式的优点,在充分利用客户端资源的同时支持与服务器的实时双向同步。PDA 电子地图数据既可以直接部署在智能设备的地图缓存中,也可以通过无线网络下载到客户端存储卡里。
系统实现的主要功能如图3 所示,其中地图管理和地图操作为通用功能,主要包括放大、缩孝漫游;GPS 设置和GPS 操作主要包括端口、波特率设定、GPS 端口的打开和关闭;卫星信息显示功能,主要包括显示经纬度坐标、接收
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)