3.2 地图匹配算法设计

地图匹配以某个车辆位置点或某段车行轨迹曲线作为待匹配样本,以该点或该轨迹曲线附近的所有道路上的位置点或道路曲线作为模板,通过待匹配样本或模板间的匹配,选择相似度最高的匹配样本或模板作为匹配结果。最后根据匹配结果校正定位模块的定位误差。车载导航系统中将车辆定位显示在电子地图上时,应该根据车辆的行驶方向,将车辆定位显示于某一道路上。但是,由于各种误差(主要是定位技术的误差),电子地图上显示的车辆会偏离实际的道路,失去其导航的功能;而地图匹配这一软件技术能校正定位技术的误差,使车辆位置准确地显示在电子地图上。

可用来判断车辆当前可能在哪条路段上行驶的信息主要有3个:当前车辆定位点距候选路段的投影距离、车辆当前行驶方向与候选路段方向的夹角以及候选路段与前一匹配路段的几何拓扑关系。一般来讲,投影距离和方向夹角越小的候选路段成为匹配路段的可能性越大,反之亦然。此外,与前一匹配路段相同或拓扑相连的候选路段成为匹配路段的可能性大,其余的可能性小。车辆在行驶的过程中,把GPS原始定位点向各待匹配路段作投影,可计算GPS原始定位点与待匹配路段之间的最短距离ri(i=1,…,n);另外车辆行驶方向与各待匹配路段之间的夹角θi(i=1,…,n)也可以得到,进而计算各待匹配路段的匹配值 λi(i=1,…,n)。

地图匹配算法在进行匹配时的步骤如下:

① 通过特征提取把所有的待匹配路段分析、描述,提取出相应的匹配因子。

图2 距离与夹角示意图

② 计算定位点P到各个待匹配路段的最短距离。距离与夹角示意图如图2所示。其中r1、r2为要求的最短距离;α1、α2为所求夹角。根据匹配规则,依次计算定点P到各个待匹配路段的匹配值。

③ 把匹配值中最小的路段作为最终匹配路段,并把在此路段上距离原始定位点最近的点作为最终匹配点。

3.3 电子地图显示模块设计

利用Android平台开发导航地图过程中,主要采用Android提供的MapView和MapActivity两个类实现。其中 MapView是一个展示地图的视图,它可以获取键盘事件来支持地图的移动和缩放功能,地图可以以不同的形式来显示,如街景模式、卫星模式等,通过 setSatellite(boolean) 、setTraffic(boolean)和setStreetView(boolean) 方法,同时也支持多层Overlay的使用。可以在地图上画坐标、写地名、画图片等。

MapView只能通过MapActivity来建立,因为MapView需要在后台使用文件系统和网络。所有这些线程需要在Activity的生命周期中被控制。

如何利用电子地图功能将GPS模块定位得到的经纬度信息在地图上显示出来呢?地球上的任何一个地点都可以利用经纬度来表示。在Android的类库中,Point类代表了一个地点的经纬度,函数格式为:Pointment(int latitudeE6,int longitudeE6)。E6是微度,即度数乘以1000 000。如果要指定地图地点,须传递一个Point类到地图中。然后调用setMapLocationCenter方法将地图移动到合适的位置,最后调用 MapController对象的animateTo方法将该坐标位置设置为地图的中心点。在实际应用中,可以使用zoomTo(int)缩放到需要的级别,同时利用mapView.toggleSatellite()和mapView.toggleTraffic()来获得卫星图和路况图。

3.4 最短导航路径规划算法设计

求解最短路径问题的算法中,Dijkstra算法是国内外公认的比较成功的算法,该算法通用性强,而且编程实现简单,是目前理论上比较完善、应用最广泛的最短路径分析算法。Dijkstra算法按路径长度的递增次序,逐条产生最短路径。

Dijkstra算法的基本思想是:设从顶点V0出发,搜索从它到其他顶点的最短路径。把有向图中的顶点集V分为两个集合,已求出最短路径的顶点集合S,尚未确定最短路径的顶点集合V-S(定义为T);按最短路径长度递增的顺序逐个把集合T中的顶点加到集合S中,直到和出发点V0有路径相通的所有顶点都包含在集合S中。在整个过程中,V0到集合S中各顶点的最短路径长度都不大于V0到集合T中的任意顶点的最短路径长度。

设带权有向图G={V,E},V={V0,V1,…,Vn-1},用带权的邻接矩阵Arcs表示图G;Arcs[i][j]表示弧《 Vi,Vj》上的权值,S表示已求得的从V0出发的最短路径终点的集合;向量D的每个分量D[i]表示当前求得的从始点V0到每个终点Vi的最短路径的长度,算法描述如下:

① 初始化集合S、向量D。S={V0},D[i]=Arcs[0][i](i=0,1,…,n-1)。

② 选择Vj,使得D[j]=min{D[i]|Vi∈V-S},S=S∪{Vi}。

③ 修改从V0出发到集合V-S上任意节点Vk的最短路径长度。若D[k]》D[j]+Arcs[j][k],则修改D[k]为D[k]=D[j]+Arcs[j][k]。

④ 重复②、③操作n-1次,即可求得从V0到其余各顶点Vi的最短路径长度。

Dijkstra算法的时间复杂度是O(n2)。

在实际应用中往往只需要搜素从某一源点到某一或某几个特定终点的最短路径,用Dijkstra算法求解,此问题与求源点到其余各顶点的最短路径的时间复杂度相同,也为O(n2)。

android导航实现方法研究现状,地图匹配算法设计 - 基于Android的车载导航系统的研究与设计...相关推荐

  1. 基于Android的红外测温设计,基于Android的红外三维重构移动APP设计与实现

    摘要: 物体的冷热程度主要依据温度来衡量,在科学进步的过程中也研制出很多测量物体温度的设备,非制冷型红外热成像仪就是应用最为广泛的一种.非制冷型红外热像仪是一种快速测量,非接触式的测温方法,而且成本非 ...

  2. 计算机设计基于Android实现高德地图校内导航出行app【项目源码+简要论文说明】

    基于Android实现高德地图校内导航出行app项目演示 如今手机的发展非常迅速,手机越来越成为人们不可缺少的东西.手机从最初功能简单的功能机,发展到如今几乎无所不能的智能机,满足了人们的日常需求,手 ...

  3. android移动停车车位管理系统的分析与设计,基于Android与WiFi的智能停车管理系统的设计与实现...

    摘要: 伴随着我国人民平均收入的不断提高,汽车已经成为人们出行的主流交通工具,城区商业金融和医疗服务中心的"停车难"成为阻碍城市交通发展的一大难题.传统的停车引导方式缺乏高效的停车 ...

  4. Android媒体播放器设计,基于Android系统多媒体播放器的设计与实现

    基于Android系统多媒体播放器的设计与实现 移动互联网自从其出现就以极强的吸引力捕获了全世界的关注,近些年尤以为甚,各类相关产品也随之蓬勃发展,Android智能手机就是其中之一.另外随着科技发展 ...

  5. 基于Android的校园社交平台,1万1 字基于Android平台的校园社交App的设计与实现 ).docx...

    基于Android平台的校园社交App的设计与实现 目 录 WPSOffice_Level1 摘 要1 1557579957_WPSOffice_Level1 Abstract2 420680369_ ...

  6. 基于android的课程画图设计,基于Android的智能终端通信勘察设计系统绘图模块的设计与实现...

    摘要: 随着通信行业甲方对设计勘察要求的提高,设计院的工作人员在外勘察的任务也越来越重.而传统勘察绘图使用纸质介质进行信息采集并在整理后进行计算机制图的的方式效率过于低下,不能满足当前勘察对效率和成本 ...

  7. 基于android平台的云记事本软件,安卓记事本毕业论文--基于Android平台记事本的设计与实现...

    安卓记事本毕业论文--基于Android平台记事本的设计与实现 毕业设计(论文) 题目基于 Android 平台记事本的设计与实现 姓 名 学 号 系 (院) 信息工程系 班 级 指导教师 职 称 讲 ...

  8. 基于android的智能风扇,新锡德尔对基于Android的静电式智能空气净化器系统设计...

    基于Android的静电式智能空气净化器系统设计 随着电子.通信.自动控制等技术的快速发展及人们物质精神生活的提高,家用电器的智能化控制代替传统控制已经成为一种大趋势.伴随智能手机的迅速普及,基于An ...

  9. android和chrome的发展与未来[j].移动通信,基于Android手机app开发与设计 毕业设计 开题报告...

    基于Android 手机app开发 电子同学录的设计与开发 四.检索与本课题有关参考文献资料的简要说明 [1] 成刚编. Eclipse 从入门到精通[M] . 北京:清华大学出版社,2005 [2] ...

最新文章

  1. selenium grid2 使用远程机器的浏览器
  2. 使用links方式安装eclipse插件
  3. 【leetcode 968. 监控二叉树】解题报告
  4. dubbo-go 白话文 | 从零搭建 dubbogo 和 dubbo 的简单用例
  5. mysql多个子查询_mysql(5)多表--子查询
  6. python文件生成电脑exe文件
  7. selenium——元素的定位
  8. Web前端开发规范文档(转)
  9. 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)
  10. c语言程序设计卡特兰数问题,求解圆上2N个点的连线问题(卡特兰数)
  11. Ubuntu20.04 虚拟机 联网
  12. UMTS与WCDMA, HSPA
  13. linux su无效_linux su 认证失败解决方案转
  14. OpenCV中图像特征提取与描述
  15. [Darktable]dt源码分析(未完)
  16. 特征值与奇异值的对比及应用
  17. 广西教育学院计算机技术专业可以当老师吗,广西教育学院老师待遇 广西教育学院好吗...
  18. 最好的OCR识别(图片转换文字)工具:ABBYY FineReader
  19. 个人随笔-求学求职-工作经历-计划
  20. 7-4 宿舍谁最高? (20 分) map+结构体的应用

热门文章

  1. 缅怀金庸 || 这些年你打过的金庸游戏
  2. 注册表删除计算机用户密码,不小心把电脑原本一直用的账户删除了,现在新建了账户,没权限。管理员密码我不知道...
  3. 破解google翻译接口
  4. 【DeepLearning】汉字手写体识别
  5. AcWing.寒假每日一题
  6. Datax 插件二次开发之parquet日志问题处理
  7. 计算机病毒英文文献,关于计算机病毒的英文文献和翻译
  8. 【笔记】ASP.NET Core技术内幕与项目实现:基于DDD与前后端分离
  9. java 实例化bean_spring实例化bean
  10. Linux常用基本命令【分类查询版】(超实用不来看看嘛?)