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