【导航地图DB-kiwi地图格式】

背景知识:                                                     

kiwi趣闻:

kiwi是新西兰的一种鸟的名称,Kiwi鸟是尾巴翅膀极短不会飞的鸟,非常珍贵,只在新西兰僻静的丛林里才能见到,所以成为新西兰的国鸟。Kiwi鸟为新西兰人骄傲,新西兰人也自称为Kiwi. 另外大家熟悉的猕猴桃也和KIWI有关,猕猴桃的英文名称为KIWIFRUIT,我国翻译为奇异果,就是因为外表类似KIWI鸟的羽毛而得名。

其他的数据格式:

HAL98,HAL99, HAL00

地图数据,地图盘,地图格式

       地图数据:以某种格式为基础电子化的二进制的数据。

       地图盘:存储地图数据的数据盘

       地图格式:地图数据保存的标准,必须按照这种格式才能读出正确的数据,格式中说明了数据的组织方式和相互之间的关联

       版本:地图格式和地图数据都有版本,它们之间不是一一对应的,一对多的关系,一个版本的格式可能对应多个版本的数据,一个版本的数据必要能够找到和其相对应的格式。

kiwi数据盘中的数据和用途:

alldata.kwi:主要存储描画数据,探索数据,诱导数据---MAP,DG, RP,VP使用

guidsrch.kwi: 检索数据的管理数据—NOTE使用

guide文件夹:下面保存的都是检索数据 ---NOTE使用

picture.kwi:画像数据---DG使用

voicedata.kwi:声音数据---DG使用

index.kwi:描画参数数据的管理文件 ---MAP使用

land.kwi:landmark数据---MAP使用

para.kwi:描画参数数据---MAP使用

kiwi数据的主要分类.

Parcel数据:主要用于描画,也被称作描画数据,数据的存储主要的一些坐标的记录,和相关的属性。根据所存的点,线,面的信息,进行显示其中包括背景,道路,文字。这些数据是构成地图的基本元素。

Region数据:主要用于经路探索,这些数据的组织形式也是为了方便最优路的探索。所谓最优路探索就是如何从地图上任意两点中找到一条最近的能够通行的路。在探索的过程中需要设定一定的条件,比如距离优先,费用优先等等,最优路探索的实现依赖于道路数据的连通性,道路的通行规则和道路的Cost值和其他条件的限制,region数据中主要强调了道路的接续,交通规制,通行方向等属性,因此能够应用于经路探索中

诱导数据:主要用于经路诱导,就是在车走行过程中提供一些信息,比如交叉点名称,道路名称,前方交叉的道路的目的地,等等,通过这些信息,提供行车途中走行的各种信息。

画像数据:提供高速道路上主要交叉点的一些情况,表示各个方向上的目的地。

声音数据:保存在经路诱导过程中所能提供的所有的声音信息。

检索数据:保存了地图数据中主要的点的信息,能够提供这个点上具有的地图要素的详细信息。

描画参数数据:保存地图描画时各种要素描画的参数信息,比如某某道路需要描画多宽,某个背景需要使用什么颜色来描画,某种文字需要描画成什么颜色等等,虽然landmark的数据单独保存成一个文件,但把描画参数和landmark统一称为描画参数数据。

数据的分层存储和分块存储.

地图的分层存储:

       地图的分层存储可以理解为分不同的比例尺存储,地图最一般的特点,是以缩小的图形显示制图区域的物体和现象,这势必导致对其进行综合。大家都知道这样一个最简单的事实:实地25平方公里在1:10万,1:25万和1:50万比例尺地图上,分别为25平方厘米,4平方厘米,1平方厘米。很明显,欲在上述各种比例尺地图上以相同的详细程度显示实地25平方公里范围内的制图物体和现象是不可能的。即使是很大比例尺的地图(例如1:1000或更大),也不可能将实地的全部物体(现象)毫无遗漏地表示出来。显然,在编制较小比例尺地图时,不加任何选取、化简和概括地将资料地图上的全部内容都表示到新编地图上,那也是不可能的。

这样一来,当所编地图上单位面积内的地物数量过多时,就要对其进行取舍,即选取一部分,舍去另一部分;当地物轮廓图形的弯曲太小太多时,就要予以化简,即删除一些小弯曲;当制图物体(现象)的数量、质量特征过于详细时,就要减少其数量、质量的差别。

地图比例尺标志着地图对地面的缩小程度,直接影响着地图内容表示的可能性,即选取、化简和概括地图内容的详细程度;它决定着地图的几何精度,影响着各要素相互关系处理的难度;它决定着地图表示的空间范围,影响着对制图物体(现象)重要性的评价。

为了满足对于不同比例尺条件下数据处理或检索的需要,把地图分层(Level)存储。一般在最底层存储最详细的数据,而上层逐渐进行数据的抽取。比如目前中国地图数据分为7层,0到6层,最高层6层可能就只描画整个中国的版图,中间标注主要的都市,而到了0层就有可能详细到某个市镇的道路。

参考下面的两个图

6层的数据:

0层数据

 

地图的分块存储:

分层存储能够将地图数据划分为很小的单元,但是即使这样取得每层的数据也是比较困难,因此在分层存储的基础上对每层的数据分块进行存储,这样为数据的取得和管理也提供了很大的便利条件,因为每层的数据量不同,因此不同层的数据块的个数也是不相同的,低层的数据量较大,划分的数据块较多,高层的数据量小,划分的数据块也少。

 

parcel数据和region数据

parcel数据:

parcel数据的组织:

parcel数据就是我们上面提到的描画数据,parcel是描画数据的最小单位,它的组织方式就是level层---blockset---block---parcel。每层的数据首先划分为m*m个blockset, 每个blockset又划分为n*n个block, 每个block又划分为p*p个parcel, 如果某个parcel的数据太大,也有可能将parcel划分为q*q个分割parcel. 其中每层的parcel的个数都是2的幂数,比如2的0次幂,就是1*1分割,因此每层的分割都是非0值。另外每层数据的parcel的分割都是相同的,比如0层有4个blockset, 一个blockset划分为4个block, 其他的blockset也划分为4个block, 每个block下的parcel的分割也是相同的,但是同一层的分割parcel是不相同的,有的分割parcel是2*2分割,有的parcel是4*4分割,这时因为分割parcel的划分是根据数据量划分的缘故。

 

 

Parcel数据中还存储了诱导信息,它的组织也是按照parcel来进行的。每个parcel都是规则的四边形,描画信息中存储的信息包括背景,道路,文字。在地图数据的每一层都存在parcel数据。地图层越低,parcel数越多。Parcel数据中保存的都是坐标信息,并没有规定各种不同的数据描画成什么颜色等,这些参数的规定都在描画参数数据中规定。

  • 相关的概念:

显示class: 是指数据的各种分类,比如背景数据中存在绿地,岛,铁道等显示class,通过描画不同class的背景数据,可以显示不同类别的数据。

正规化坐标:每个parcel内的坐标划分,每个parcel内的最大正规化坐标为4096*4096,通过正规化坐标和每个parcel的左下坐标能够计算parcel内所有点的实际坐标。正规化坐标的使用可以减少很大的数据量

经纬度:和现实中的经纬度的含义相同,kiwi数据中的经纬度的单位是1/8秒,提高了一定的精确度

缩尺scale:每层的数据显示的都是一个scale的数据,比如0层的比例尺是1/25000,实际上在每层又分了多个比例尺,这样的比例尺称为缩尺scale,每层最多允许有5个scale, 实际上0层的scale最多,有3个缩尺scale.每层的数据只有一份,可以通过缩尺scale的控制描画在不同的比例尺下。

  • 背景数据

背景数据是包括点,线,面,点就是地图上的mark, mark的坐标信息保存在背景数据中,mark的形状信息保存在landmark数据中。线是指地图上显示的铁道,区域线,比较窄的河流等等,面是指地图上的绿地,比较宽的河流,建筑物等等。见下图所示:

背景数据是按照下面的方式进行组织的:

显示class->data的排列->地图要素(点,线,面)

相关的概念:

  • offset:背景数据中的形状点相对于前一个形状点的偏移量,使用offset可以大大的减少数据的存储容量。
  • penup, pendown: 在背景数据的描画过程中,可能需要中断某一部分的描画,比如一个背景线可能会不描画中间的部分,这样就需要描画到某一位置时抬笔,到另外一个位置时落笔,记录这样位置的坐标点称为penup点,pendown点。penup点,pendown点指出现在背景线和背景面中,背景面中一般出现在parcel边界上的面中。
  • polyline:背景线,比如铁道,行政边界等等,和道路线不同的是,背景中的线是不能用来走车的。
  • polygon:背景面,比如绿地,建筑物等

道路数据

道路数据中保存的就是车能走行的道路信息,和实际的道路的意义相似,地图中的道路使用点和线来表示。道路数据如下所示:

 

道路数据是按照下面的方式组织的:道路显示classàlink列àlink,node

相关的概念:

  • Node:两条以上的Link的交叉点。
  • 形状补间点:两个node点之间的形状点,主要用于描述道路的实际形状。
  • ShapeLink:两个形状补间点之间的线段。
  • Link列:某些属性相同的一系列Link和Node。
  • Linkid:数据中的每个link的番号,对于一层数据保存的所有link,linkid是唯一的。
  • 差分linkid:每个link并不直接的记录对应的linkid, 只在link列中记录起始link的linkid, 其他link都记录相对于起始link的差分linkID, 从而间接的求出linkid.
  • 幅员:道路宽度
  • 顺,逆方向:link的方向和node出现的顺序一致为顺方向,否则为逆方向。
  • 通行规制:就是link是否能够走行的信息

文字数据:

地图上显示的各种文字,见下图

  • 文字的排列:文字的排列分为横排和纵排两种。横排如上面的“中山大道东“,纵排如上面的“东环高速公路“
  • 文字的转行:文字有可能不在一行显示,这样就需要保存转行的文字,比如上面的“广州本田汽车有限公司”
  • 文字的类型:文字主要分为重心型,指示pointer型。

重心型

 指示pointer型

 

region数据:

经路计算数据也被称作region数据,region数据的存储也是分块进行,不过它的组织就简单得多,在每层的基础上直接分为若干个region,也就是level层---region号。Region数据中只保存道路的相关信息,随着地图层的降低,region的个数会增加。Region的划分基本上和行政区域的划分相关,region不存在分割region,region就是最小的组织单位。下层region是由上层region数据进行细化得来的。上下层的region存在父子关系。

Region中虽然保存的也是道路信息,但是和parcel数据不同的是,它不保存道路的坐标信息,只有一些道路的通行条件等内容,它和parcel数据的唯一联系就是linkID, 同样的link不管是在parcel中还是在region中,它的linkId都是相同的。

 

Parcel数据和region数据的关系:
    在同时保存了parcel数据和region数据的地图层中,两者的关系如下图所示

  1. Parcel数据的大小可以使用左下,右上的经纬度范围来定义,它是标准的矩形,在每一层所有parcel的大小都是相同的
  2. Region也是一个矩形,但是即使在同一层,region的大小也是不相同的,region数据的范围用包含的数据的最大,最小范围表示。

Kiwi格式的读取                                                  

Kiwi格式表结构

name[主要地图parcel管理记录]

项番

Offset

 Data长

Data形式

 项目名

备注

识别

1

0

4

DSA

主要地图DataFrame的先头Address

(1)

B

2

4

2

BS

主要地图DataFrame的Size

(2)

B

  • […] 表的名称;
  • 项番:给每个项目赋予的项目番号;
  • Offset:描述该项目在所属表中的相对位置(用字节表示);
  • Data长: 相应项目的data容量,不固定长时,用B表示;
  • Data形式:相应项目的数据类型;
  • 项目名:相应项目的名称,如暂时未使用,用Reserved 表示;
  • 备注 :相应项目的解释;
  • 识别:表示是否是有意义的值或是可以省略的值;
  1. 总是保存有意义的值;
  2. 根据情况保存,可以保存无意义的值;
  3. 如果不需要的话省略。

Kiwi格式中的基本概念:

Field : 保存数据的最小单位;

Record: 由多个Field组成的一组数据;

Table : 由相同种类的固定长Record 组成的数据;

List: 由相同种类的不固定长Record 组成的数据

Frame: 由多个Table 或List组成的Data;

Distribution Head:一般配置在一个Frame的先头部分,记载此Frame中各Table 或List的位置和大小的部分。

Kiwi格式中的数据类型:

N:自然数型,0~filed 所规定的最大长,如是两个字节的N型,则表示的范围是0~65536;

I:整数型,补码型表示的整型范围;

C:字符串型;

CC:字符串型,用来表示日文字符;日文字符一般由两个字节组成;

D:表示从0到Field长规定的最大值的2倍。如果是两个字节的D型,则表示的值得最大可能是131068(值为0~65534)。

SWS:表示从0到Field长规定的最大值的2倍。如果是两个字节的D型,则表示的值得最大可能是131070。

LWS:表示从0到Field长规定的最大值的4倍。如果是两个字节的LWS型,则表示的值得最大可能是262140。

PID:ParcelID 番号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22237.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS内存管理-内存的几大区域】

前言 iOS内存管理的第一篇章,了解iOS内存的五大分区。 总览 iOS中,内存主要分为五大区域:栈区,堆区,全局区/静态区,常量区和代码区。总览图如下。 如上图所示,代码区是在低地址段存放&#x…

4. CSS用户界面样式

4.1什么是界面样式 所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。 ●更改用户的鼠标样式 ●表单轮廓 ●防止表单域拖拽 4.2鼠标样式cursor li {cursor: pointer; }设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。 4.3轮廓线outline…

FTP挂载网络磁盘

项目中使用存储阵列或NAS等网络存储作为文件存储地址,服务器与存储之间通过网络进行传输,当我把ftp指向的存储地址修改为网络磁盘时,会出现550等读取不到目录问题;以下为解决方案: 1.在服务器中新增windows用户&#x…

2、JDk、JRE、JVM三者区别和联系

JDK JRE JVM 含义 JDK: Java Develpment Kit java 开发工具 JRE: Java Runtime Environment java 运行时环境 JVM: java Virtual Machine java 虚拟机 一张图来解释: 联系: JVM不能单独搞定class的执行,解释class的时候JVM需要调用解…

什么是CI/CD?让你的项目变得更加敏捷!

在今天这个快速变化的时代,开发者们需要与时俱进,不断提升自己的工作效率。在这篇文章里,将一起探讨如何使用CI/CD和Github Action让你的项目更加高效,快速响应市场变化。 一、什么是CI? CI(持续集成&…

【已解决】Flask项目报错TypeError: tuple indices must be integers or slices, not str

文章目录 问题情境报错及分析报错代码分析 解决方案必要的解决方法可能有用的解决方法 问题情境 本解决方案适用情境:在本地可以正常运行的flask项目,放到云服务器报错TypeError: tuple indices must be integers or slices, not str,即代码…

计算机体系结构基础知识介绍之线程级并行性及其利用

线程级并行(Thread Level Parallelism,TLP)是指在多个处理器或多个核心上同时执行多个线程,从而提高程序的性能和吞吐量。线程级并行的基本原理是利用程序中的数据或任务的并行性,将程序划分为若干个相对独立的子任务&…

网络数据安全风险评估实施指引(一)

近日,全国信息安全标准化技术委员会发布了《网络安全标准实践指南 网络数据安全风险评估实施指引》(TC260-PG-20231A v1.0-202305),旨在响应《数据安全法》要求,落实重要数据处理过程风险评估,衔接已发布的…

DBeaver设置主题

一、下载包 帮助-》Install new software Eclipse Update Site 勾选一直下一步,直到安装完,会提示重启,重启设置主题即可 二、设置主题 窗口-》首选项-》DevStyle

【技术指南】3D转换工具HOOPS Exchange的功能特征和典型使用场景全解析(一)

一、什么是 HOOPS Exchange? HOOPS Exchange 是一组软件库,可以帮助开发人员在开发应用程序时读取和写入主流的 2D 和 3D 格式。HOOPS Exchange 支持 在主流的3D 文件格式中读取 CAD 数据,并支持将 3D 数据转换为 PRC 数据格式,…

eclipse : sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder找不到jar包 比较好的解决办法 按顺序依次操作: Windows -> Preferences -> Java -> Compiler -> Errors/Warnings。再按照顺序依次: Deprecated and trstricted API -> Forbidden reference (access rules): -&g…

2023京东防暑消暑市场分析:冷风扇、移动空调等硬核防暑产品火爆

今年夏天,高温天气频发,各种防暑类产品也向多场景延伸,不少行业、类目都因此高速增长,包括防暑类电器、防晒用品、小型户外避暑神器等。 *高温刺激下,防暑类家电需求暴涨 在夏季高温的刺激下,空调、风扇等等…