现代的导航有单机版与在线版之分。
单机版,即本机有完整的地图,完整的导航引擎和导航应用模块。无需连接服务器,本机就能完成导航的各种功能。这个一般又称离线版。单机版也分为多进程和多线程结构,多进程结构是将各个子系统用独立的程序来实现,当一个子系统出错,重启时,尽量不影响其他系统的执行,这种结构对系统配置要求较高,一般用于高端系列;而多线程结构是将所有模块在一个程序/进程中实现,当一个模块挂死、出问题,整个导航系统可能就需要重启。
在线版,即用户的界面只是一个图片和交互,其真正的地图资源,路径规划,展示图片的渲染都放在服务端完成。用户必须联网才能使用,如google地图。
二者的导航功能性都基本相同,但是其软件的架构,因为用户的数量(容量),基础设施(软硬件平台)的不同,会由较大的不同。
我们先从小的单机版开始,分析导航的内部结构。
导航一般是由HMI,逻辑控制层,导航引擎,数据驱动层,地图组成,并且是一个单向顺序分层的结构。整体模块的区分非常简单明了。
单机版,即本机有完整的地图,完整的导航引擎和导航应用模块。无需连接服务器,本机就能完成导航的各种功能。这个一般又称离线版。单机版也分为多进程和多线程结构,多进程结构是将各个子系统用独立的程序来实现,当一个子系统出错,重启时,尽量不影响其他系统的执行,这种结构对系统配置要求较高,一般用于高端系列;而多线程结构是将所有模块在一个程序/进程中实现,当一个模块挂死、出问题,整个导航系统可能就需要重启。
在线版,即用户的界面只是一个图片和交互,其真正的地图资源,路径规划,展示图片的渲染都放在服务端完成。用户必须联网才能使用,如google地图。
二者的导航功能性都基本相同,但是其软件的架构,因为用户的数量(容量),基础设施(软硬件平台)的不同,会由较大的不同。
我们先从小的单机版开始,分析导航的内部结构。
导航一般是由HMI,逻辑控制层,导航引擎,数据驱动层,地图组成,并且是一个单向顺序分层的结构。整体模块的区分非常简单明了。