首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Windows CE的物流车载终端设计 02

基于Windows CE的物流车载终端设计 02

则定义该像素点的归一化坐标为(x/W,y/H)。这样,地图左上角的归一化坐标为(0.0,0.0),右下角归一化坐标为(1.0,1.0)。把这样的坐标系统称为“归一化坐标系”。

  采用归一化坐标系可以简化栅格地图的多级缩放。由于本终端要将车辆当前的位置显示在地图上,而对于不同的地图级别,地图的分辨率是不一样的。那么,当地图放大或缩小时,车辆对应的像素坐标就会发生改变;但是,在GPS连续的两次更新间隔之间,车辆在地图上的归一化坐标是不会变化的。地图放大或缩小后,只需要用新地图的像素宽度乘以归一化x坐标,即可得到车辆在新地图上的x轴像素坐标;同理,可得车辆在新地图上的y轴像素坐标。这样,坐标计算过程就可以统一起来。本设计中的电子地图模块统一采用归一化坐标系。

  根据设计要求,本终端的电子地图支持4级缩放。设计中采用一幅大小为2 251×1 557、格式为BMP的成都地图作为原始地图,即所能支持的最大分辨率的地图。把缩小8倍以后的地图作为所能支持的最小分辨率地图,因此地图级别与放大倍数之间具有如表2所列的对应关系。

  程序启动时将所有位图文件载入内存,以加快响应速度。此后,当执行放大或缩小地图的操作时,则将相应的位图显示在屏幕上;同时,根据新的位图大小和车辆的归一化坐标计算出车辆在地图的像素位置,并将车辆位置在地图上显示出来。

  就车载终端而言,所覆盖的地理范围相对地球半径来说几乎无穷小,故可以认为该电子地图所对应的经纬度坐标是线性变化的,即地图坐标和GPS坐标之间近似为线性映射关系。此线性映射关系的原理如图3所示。


  由于GPS得到的是当前车辆的经纬度坐标,而电子地图模块使用的是归一化坐标系,因此需要在两种坐标之间进行转换。此转换过程是依靠地图左上角点和右下角点这两个基准点来实现的,因此首先需要求得地图左上角和右下角的经纬度坐标。有了这两个数据以后,当从GPS硬件模块读取到经纬度坐标时,根据近似的线性映射关系,就可计算出该坐标在地图上二的归一化坐标,由此可得相应的像素点坐标,即可将车辆位置显示出来。

  对于地图左上角点和右下角点的经纬度坐标的求取,通过实际测量的方法是很难做到准确无误的。因此本设计采用一种间接的方法来求得地图左上角和右下角的经纬度坐标。

  假设在地图边界内部有两个任意点,把这两个点称为“参考点”,并且已知这两个参考点的经度、纬度、归一化x坐标、归一化y坐标;设参考点1的这4个参数为point1=(lon1,lat1,x1,y1),参考点2的这4个参数为point2=(lon2,lat2,x2,y2),即pointl和point2已知。根据前面的说明可知,左上角点的归一化坐标为(0.0,0.0),而右下角点的归一化坐标为(1.0,1.0)。另外假设左上角点用pointTL表示,其经纬度为lonTL和latTL;右下角点用pointBR表示,其经纬度为lonBR和latBR(TL意即Topleft,BR意即BottomRight),则有pointTL=(lonTL,latTL,0.0,0.0)。同理,对于右下角的点有pointBR=(lonBR,latBR,1.0,1.0)。

  由于将经纬度与地图坐标之间近似为线性映射关系,因此根据欧氏几何原理可知,由已知的point1和point2,可以计算出pointTL和pointBR的未知参数:

  可见,要得到地图左上角和右下角的经纬度坐标,只需要知道2个参考点的4个参数就可以了。在本系统中,实地采集了3个参考点,得到的数据如表3所列。
根据式(1)和式(2),上面的3个参考点之间两两结合可以求出一组左上角和右下角的经纬度,总共可以有3种组合方案,也就是可以求得3组经纬度值。然后,对这三组经纬度取平均,以减小误差,提高精度。

  上述过程是在GPS数据处理模块初始化过程中完成的。为了提高系统的灵活性和可靠性,参考点数
返回列表