NDS格式简介
NDS全称Navigation Data Standard,是由NDS协会开发的一种电子地图数据标准。
NDS协会是一个注册协会,致力于提供一个世界领先的汽车级应用的电子地图标准。
NDS协会由汽车制造商,应用/编译器开发人员,地图和服务提供商组成。对外的主要窗口是NDS协会网站以及技术交流大会。
NDS数据全部由SQLITE数据库组成
- ※ SQLITE数据库需要满足以下条件
- SQLITE数据库使用V3.0版本
- 使用UTF-8编码
- 支持ZIPVFS
- 每个数据库文件都以[.nds]作为扩展名
数据库记录由2进制的数据块构成, 2进制数据块是由BIT流(即最小数据组织单位是BIT)的2进制数据构成
NDS数据组织结构
NDS数据的物理组织结构
Product Database
一个NDS数据包含一个或多个Product Database
Update Region
一个Product Database包含一个或多个Update Region
Building Block
一个Update Region可能包含一个或多个Building Block。
例
NDS模块介绍
NDS数据的分类
NDS数据是分类保存的数据,每个Building Block代表一个种类的数据
目前一个完整的NDS数据有以下种类的数据构成:
NDS数据的分类 -各Building Block的简单介绍
Navigation and Map Display
Share Data
共有数据,各个Building Block共有的情报
Routing
经路计算数据
BMD
Basic Map Display,地图描画数据
Name
文字数据,包括除POI外的所有文字数据
POI
POI详细情报数据
Icon
Icon数据
Speech
音声数据,包括文字的音素情报和以录制的音声数据
Traffic Information
实时交通信息数据,目前支持RDS-TMC & TPEG
Index Structures
NVC
Next-Valid-Character 为Name和POI提供检索功能的索引树。例如名称检索|设施检索等
SLI
SQLITE Location Input 为Name和POI提供检索功能的索引表。例如交叉道路检索
FTS
Full-Text Search 全文检索
Advanced Visualization
DTM
Digital Terrain Model 数字地形情报
3D Object
3D Object数据
Other Images
地表卫星图或航空图
Junction View
交叉点扩大图
在NDS数据中,根据类型不同,可以把Building block分为两大类:核心Buiding block和辅助Building block,核心Building block可以在NDS数据库中单独发布,而辅助Building block则必须依赖于核心Building block才能发布,一个NDS产品数据库至少要包含一下核心Building block
Building block type | 分类(核心/辅助) | 是否可以存储多个 |
Share Data | 所有产品数据库必须存在 | 否 |
Routing | 核心 | 否 |
Name | 辅助 | 否 |
Base Map Display | 核心 | 否 |
POI | 核心 | 是 |
Traffic Information | 辅助 | 否 |
Next Valid Character Tree | 辅助 | 是 |
SQLite Location Input | 辅助 | 是 |
Full-text Search | 辅助 | 是 |
Natural Guidance | 辅助 | 否 |
Speech | 辅助 | 是 |
Digital Terrain Model | 核心 | 是 |
Orthoimages | 核心 | 是 |
3D Objects | 核心 | 是 |
Junction | 辅助 | 是 |
Icon | 辅助 | 否 |
Extension | 依赖于数据类型 | 是 |
NDS数据是分Level保存的数据,在一个Building Block的数据库中,是分Level存储。
NDS的Level结构如下,
NDS基本概念---TileNumber
NDS数据的Tile划分方式 - NDS数据的最小组织单位称为Tile
在一个Building Block的数据库中,每个Level是由多个Tile构成的。Tile在各个Level中的划分方式 : 在横纵360☓180范围内,顺次进行2X2分割,Tile的概念是基于Level的,最高层为Level0,最低层为Level15。其中Level13存储最详细的导航数据
NDS数据的Tile划分方式
Level1
Level2
NDS基本概念---PackedTileID
Level1以下各层的Tile是对上一层Tile进行2X2分割得到的。每一层的TileNumber都以上一层的TileNumber
为前辍,TileNumber遵守MortonCode原则.假设当前层为Level K,则TileNumber的bit数为2K+1}
★Level K的TileNumber等于对应点坐标MortonCode的前2K+1比特;当前Level的Tile的经纬度幅宽为2^(31‐k);Tile数为2^{2k+1}
NDS基本概念---坐标系统
地理编码:NDS数据使用WGS84坐标系作为经纬度平面坐标系,并且NDS数据使用EGM96坐标系作为高度坐标系
精度:NDS数据的经纬度的精度 90/2^30度
经度范围:
–2^31 ≤ x < 2^31 (32bit)
经度范围:
–2^30 ≤ y < 2^30 (31bit)
其中x_31, y_30是the most‐significant bits
Morton Codes(莫顿代码)
Morton Code是由NDS的绝对经纬度组成的,具体如下
例:
Tile坐标系:NDS数据的Tile 坐标系组成如下
NDS基本概念---Feature和属性
NDS数据的Feature和Attribute关联机制
是从Attribute到Feature的关联机制。有如下几种类型,
①Attribute Value for One Feature
②Attribute Value for Many Features
③Attribute Value for All Features
NDS基本概念---Gatway
NDS数据的差分更新机制
NDS数据支持差分更新,主要是通过跨tile数据的保存机制来实现。
NDS数据中,跨Tile的道路是不分割的,并且道路ID保持不变
NDS数据中,跨Update Region边界的道路是分割的,分割点称为Gate Way,Gate Way ID也是保持不变的
主要学习资料
☆ NDSCompilerInteroperabilitySpecification_2-4-2.pdf
☆ NDSFormatSpecification_2-4-2_0.pdf
☆ NDS-HTML-Documentation-PhysicalModel-2.4.2_rel
☆ NDSUpdateSpecification_2-4-2.pdf