整体结构

介绍下 Data(so- NDS )的架构,和其最重要的一些概念 。,
1,NDSand its
NDS的数据可以称为是一个,是被其标准文档所规范好的标准 。作为一个标准化的,也就是你生产出来的NDS和别人生产出来的NDS,数据格式是一致的,具体而言,符合这个标准的,完全可以在所有的NDS数据上面毫无压力的运行 。
NDS的数据还有个特点,就是可以在多个不同内容的数据上同时的运行 。比如,在硬盘上有完整的路网数据,同时在flash card上有POI的数据,你的可以在运行的时候,同时加载这2个数据,你的会在逻辑上把这2个数据当成一个完整的逻辑 。(在以后的网格划分的时候可以看到NDS是如何实现这点的 。它用一个全球统一的网格划分方法,来分隔数据,这样保证你很容易把不同的来源的NDS数据,通过网格重叠在一起 。)
NDS的数据文件存储于 filev3( ), 字符编码为UTF-8 。
2,NDS
一个NDS的由多个 组成,每个 又可以进一步分出多个。这样做的好处就是,可以通过不同的数据供应商来提供不同的数据内容,然后你把他们都整合成一个逻辑上统一的NDS。
NDS数据再往下分,就是一个 又由 来组成,一个block就是某个level的某种类型的数据 。
2.1
一个 就是由一个数据供应商发布的,有自己的版本控制 。并且一个 可以单独进行数据更新,和其他 无关 。一个 描述了一个地理上的区域,它可以进一步的划分成多个。
举例来说: 一个欧洲的 NDS 数据包含2个 :
■basic(包括 the Basic Map ,and Name,有公司提供).
■POIs(由 公司提供)
2.2
,看名字就知道,它是一个在地图数据在更新的时候单位 。就是地图会按地理位置切分成一个个。数据增加和更新的时候就以此为基准 。
一个 描述了一个地理上的区域 。2个 在地理上如果是相接壤,在边界上就会定义些重叠的点(后面会讲到就是),但是 的内容本身是独立描述的 。也就是说 只是描述自己范围的所有内容,不在其范围内的内容是不描述的 。(但是在路径规划的时候如何做到跨,就是通过,一个的边界上的点,会定义自己为一个,并且仅此为止 。通过 id,到 date里面去找这个 id的相关信息,可以得到另一个的边界点是同一个 id,从而跨探索 。)
2.3Block
导航地图数据按不同的功能,被组织成一个个 block 。每个 block存储了自己特定功能的内容,这个内容由 NDS标准所规定 。比如 nameblock里面存储的都是名字(城市名,道路名等等),block包含了路网数据,poiblock包含了POI的数据 。
block的组织更倾向于如何让数据更有效的被访问,而不是为了逻辑上继承 。所以对一些应用,在数据看来上并不是很直接 。应用程序在开发应用的时候需要自己创建一些逻辑视图,这些逻辑视图的内容来源于不同的 ,通过join和来达到目的 。
block types and :
上分为2个类别:coreblcok(核心) 和block(辅助) 。通过名字我们也知道,核心 block是必须的,辅助 block可有可无,并且辅助 block必须和核心 blcok一起发布,你不能独立发布一个辅助 block 。一个NDS的 必须包含至少一个核心 block 。
type上按照功能来分,如名字,图标等等 。下面的表列出出了各种type和其对应的 。

整体结构

文章插图
Blockin:
一个 包含了多个 block 。在一个 里面,又包含了多个 ,所以对某种type的 blcok会有好几个 。我们会对每个 block赋予一个唯一的id 。id+ block id能够表达唯一的 block 。
2.4
某些 block,其包含的数据内容是分层组织的 。level越高,数据的空间范围越大,size越小,内容也越疏 。需要说明的是,数据分层是统一规划,用于显示的数据和用于路径规划的数据,它们是按照相同的网格定义来分层 。同一个level的所有类型的 block,其表示的网格(NDS称为 tile)的面积是相同的 。