NDS的作用有:
- 分离导航软件与地图数据;
- 不同导航系统间数据兼容;
- 使不同系统间的数据内容更新简单。
NDS包括NDS数据库和其接口。
数据库的物理地址可以不同,但对导航引擎而言,只有一个逻辑NDS数据库。SQLite 3.7.4-nds3 是将数据转换为NDS格式的工具。
NDS结构中的几个概念:
Product database
- 一个NDS数据库可能由几个产品组成。每个产品相对独立,版本控制及更新不受其他产品影响。
如一个NDS包括一家公司的基本导航地图数据,和另外一家公司的兴趣点数据。
所有信息都存放在 导航数据库表 中
- 一个NDS数据库可能由几个产品组成。每个产品相对独立,版本控制及更新不受其他产品影响。
Update Region
- 更新区域 能使 NDS数据库能增加和更新替换地理信息,以区域为单位,如国家(欧洲)或州(美国)。NDS – Update Specification对此功能有详细的说明。
以下部分是NDS内部的结构:
Building Blocks
所有导航数据都属于一个特定的building block,而一个building block能提供NDS的一个具体功能。
典型的building block包括:- a. 路径规划(Routing)
- b. 命名
- c. overview
- d. 基本地图显示
- e. POI
- f. 语音
- …
除了规划与命名,其他block都是可选的。
Level
由于空间尺度的不同,数据在block中可以划分为不同level,大尺度空间的数据放在high level中,而细节数据,放在low level中。
优点:在high level中,数据量小,便于路径规划和基本地图显示。
每个level被划分为tiles,即将地球表面划分为规则的格子。tiles可用于数据存取,即是NDS接口的容器(我的理解)。Content
分为三类:a. feature
现实世界的物体在导航中的模型,用feature来表示。feature的分类如下:
feature数据分为两部分:
自身属性和与其他feature的关联属性。 每种属性有各自的表示方法和细分类。b. attribution
描述feature的具体属性。 分为必需的和可选的。c. metadata
元数据,每个产品数据库的细节数据。分为全局数据和特定building block的数据。
数据结构:
一个NDS的入口:
+ productDbTable
+ ndsDbSupplierTable
+ datamodelVersionTable
+ overallMetadataTable
而一个产品数据库product database(sql_database ProductDatabase)中包含很多表,包括version,update,building block等。
building block的逻辑映射表(Logical Mapping of Tables to Building Blocks),与物理表相分离。