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

本文介绍了导航引擎的整体结构,包括其与周围模块的交互,并提及共享内存作为文件映射的特殊情况。后续将深入探讨各子模块的结构设计。
最低0.47元/天 解锁文章
10万+





