【导航地图DB】

news2024/11/23 12:43:21

地图DB概述

车载导航地图DB
主要侧重道路交通网,并从实用性、加快检索速度和减少数据容量的角度来考虑,有自己特有格式的电子地图。
含有空间位置地理坐标,能够与空间定位系统结合,准确引导人或交通工具从出发地到达目的地的电子地图或数据集。
地图DB的存储结构
不同的地图DB格式有不同的存储结构,但总体来说,基础数据都是分块进行存储的。
车载导航地图DB的发展历程
早期的DB结构还没有标准的格式,采用的比较多的是依赖于Navigation侧应用功能的结构:
 
这种将数据与功能溶于一体的形式,很容易开发,但是造成了数据的冗余。并且,如果新功能追加时伴有格式变更,则会给整个DB的结构带来灾难性的影响。
车载导航地图DB的发展历程
为了解决上述结构带来的问题,需要设计一种不依存于应用的通用格式。为此,用道路等对象的形状、属性、关联关系等情报描述现实世界的通用格式应运而生: 


当然,KIWI格式对原来格式在数据容量的压缩、应用的性能、格式的扩展性等方面进行了优化。
但是,KIWI格式也存在着一些缺陷,比如:数据文件很大,数据之间的耦合性较高,不能差分更新等。

 

MBA,一种分功能目录、分块、分文件存储的数据格式(具体参见下图),各功能相对独立,耦合性较低,并且支持差分更新。
 
MBA格式部分解决了KIWI格式带来的问题。但是也带来了新的问题,比如:分小文件(单个文件512K)存储也限制了应用性能的提升。 

NDS,各大型车厂、地图提供者以及导航产品提供商联合推出的新一代导航地图格式标准,其目的是取代各导航系统使用的不同地图DB格式,实现导航格式的统一。
相对于KIWI和MBA格式使用二进制文件进行存储的方式,NDS地图DB使用sqlite数据库进行存储,以期更方便地实现差分更新,并提升导航系统的性能。
NDS作为最新的地图DB格式,受到很多大型车厂的青睐。但是基于导航性能的考虑,硬件配置的高要求的也带来了成本的上升。

基本概念简介

文书规则
Filed
  有值的数据的最小存储单位称为field。
Record
  由多个field 组成的、一组data 称为record。    
Table
  由相同种类的固定长record 组成的data 称为table。    
List
  由相同种类的可变长record 组成的data 称为list。
Frame
  由多个table 或List 组成的data 称为frame。
Distribute head
  配置在frame的先头部分,记载此frame中存储的各list或table位置和size的部分。

基本数据要素
Segment
    直接连接2 个形状要素点的线段。
形态要素点
    包括在 link 上的多个segment 的端点, 且不是 node 的点。    
Link
    指两端有node 的非交差的segment 列。也叫edge。    
Node
    2 个以上的edge 直接交差的叫作node。link 的终端(终点)也是Node 点。
link 序列
    同一属性 node 与link 的有限序列
 
道路名称
    link 列附带的道路名称。
POI(Points of Interest)
    地图上特定位置的对象物(如大楼、酒店等)。    
背景 data
    地图显示中使用的点、线、面数据。
点(Point) 
      表示各种服务设施或收费站等地点时使用。
线(polyline)
       表示铁道、行政界线、河川等时使用。以点的序列来表示。
面(polygon)
       表示公园、湖、森林等时使用,作为封闭的点的序列来表示。
名称
    保存与地图上的要素有关的名称信息。
结构用语
Level
   对相同意义的数据根据其详细程度/密度分类了的地图数据的部分集合。
    从高Level到低Level,数据越来越详细。
Mesh/Tile
    Level数据经过某种规则均等分割后形成的矩形。     
基准Mesh/Parcel
    其划分方式每个Level是固定的,由式样规定。
表的读法 
(1) […]:
      记述 record、table、frame 等名称。
(2) 项番:
      每个项目的项目番号。
(3) offset:
      描述在相应的项目中,该项目所属的record、table、list、从frame 先头位置的相对位置
(4) data 长:
      描述相应项目的data 容量。
(5) Data 形式
     描述相应项目的Data type。
(6) 项目名
     记述相应项目的名称。
(7) 备考
    在相应项目中根据需要记述注意事项.
(8) 识别
    a:固定存在,且存储有意义的值;b:固定存在,可存储空值;c:不需要可以省略。

地图DB格式简介

KIWI格式
概述
    KIWI数据划分为Parcel系、Region系、检索系以及其他系。
    基础数据(包括Parcel系、Region系)存储在一个文件中(AllData.kwi),并使用索引结构(Offset和Size)来进行管理。
    检索系数据按照检索功能进行存储。
基本概念
Block     
    合并了多个parcel 的矩形框叫作Block。
BlockSet
    合并了多个Block的矩形框叫作BlockSet 。
组织结构
AllData数据的层次关系
       如下图所示。
 
其他数据包括画像、音声、描画参数、MANEUVER、料金、高速、3DObject等数据都按照功能分文件存储。
目录结构
    具体请参见下图。
 
MBA格式
概述
    MBA数据按照功能划分目录,功能目录下分块分文件存储,文件按照数据量进行划分。
    各功能数据相对独立,耦合性较低。
    支持差分更新。
基本概念
一次Mesh
      Level数据在经纬度方向上按照某种规则(如1度× 1度)进行分割后形成的Mesh 。
二次Mesh
      一次Mesh经过8×8分割后形成的Mesh。
三次Mesh
      二次Mesh经过4×4分割后形成的Mesh。
其划分方式如下图所示:
 
组织结构
根据数据功能的不同,其组织结构也相异。

 
目录结构
    具体请参见下图。
 
NDS格式
概述
    NDS是一种使用数据库存储,用于导航系统的,标准化的物理存储格式。
    支持差分更新。
基本概念
Product Database
  产品数据库。一个产品数据库覆盖一个区域(如国家)。
UpdateRegion
  更新区域。一般是由Product Database划分而成的更小区域。
BuildingBlock
  每种功能数据可以认为是一个BuildingBlock(如:地图描画数据等)。
 
组织结构
  NDS数据库可以由几个产品数据库组成,产品数据库又可以划分为多个UpdateRegion,每个UpdateRegion内部按照BuildingBlock组织,BuildingBlock内的数据按照Levels和Tile或记录进行存储。
目录结构
  具体请参见右图:

 
地图DB的查看
概述
   每种格式的地图DB在发布时,都会发布当前版本数据对应的查看工具。使用此工具,即可查看数据描画出的效果以及各数据项的值。
KIWI数据的查看
    FocusEye是查看KIWI数据的工具,其显示效果如下图所示:
 
MBA数据的查看
     MBAViewer是查看MBA数据的工具,其显示效果如右图所示:
 
NDS数据的查看
   NDS的查看工具Mapview,是由NDS官网提供的,其显示效果如右图所示:
 
地图DB应用说明

MAP vs Map Data

DG vs Guide Data
 
DG vs Highway Data
 
Search vs Search Data

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ylb-接口10用户登录

总览: 在api模块下的service包,补充用户接口(UserService):用户登录 package com.bjpowernode.api.service;import com.bjpowernode.api.model.User; import com.bjpowernode.api.pojo.UserAccountInfo;public inte…

运维小知识(三)——BIOS密码忘记怎么办(一键清除)

🍉🍉问题 为了防止恶意更改BIOS程序,一些人会设置BIOS密码,但这个密码若不常用的话会被人遗忘,或者一台旧电脑,需要重装系统,没有BIOS密码怎么办?有没有童靴遇到过,网上找…

bash脚本文件windows上的和linux上格式不同问题

脚本执行时报: syntax error: unexpected end of file,由于脚本是给定的。之前没有考虑这个问题,后查阅资料发现问题如下: 可能发生场景:windows环境编辑/生成的shell脚本,在linux系统上运行时报错 编辑和…

备战秋招009(20230714)

文章目录 前言一、Java内存区域1、JVM组成部分2、运行时数据区域01、基础02、程序计数器03、虚拟机栈04、本地方法栈05、堆06、方法区07、直接内存 3、HotSpot虚拟机对象01、对象的创建02、内存分配03、内存布局04、访问定位 二、垃圾回收1、堆空间01、空间结构02、GC 分类03、…

linux之vscod编译源代码

vscode想要编译c/c程序 在本地的linux上首先要安装gcc与g编译器,因为这个后面会写到配置文件里面去 先在这个软件里面安装上c/c的扩展插件,然后当我们开始编译c/c程序的时候 会自动生成一个.vscode目录 然后先来看一个配置文件launch.json的配置文件…

【观察】杉数科技:释放智能决策“乘数效应”,驱动智能制造高质量增长

毫无疑问,中国制造业在时代背景与国家政策的双重驱动下,正加速向数智化转型,而以数据驱动的智能决策也正成为制造业资源优化配置的“利器”,通过端到端的数据深度感知与决策优化,显然能够将工业和制造业的数据价值发挥…

波奇学Linux: sudo提权,gcc编译,动静态链接,debug版本

sudo给普通用户提权 在root用户下输入 vim /etc/sudoers 添加白名单,名单上的用户可以用root权限运行 gcc和g编译c和c文件 g可以编译c和c文件 gcc只能编译c文件 ./a.out 执行a.out可执行文件 通过g编译器展示预处理->编译->汇编->链接的文件 预处理&am…

甲骨文注册

1、去官网注册 https://www.oracle.com/cn/cloud/free/ 2、邮箱验证填写注册信息 选择区域再点继续 申请失败MD,成功再更新!

Java数据结构与算法:稀疏数组(SparseArray)

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 文章目录 一、稀疏数组是什么?1.1 基本介绍1.2 稀疏数组的处理方法1.3 举例说明 二、为什么要使用稀疏数组?2.1 先看这一个具体的应用需求问题解决方案 2.2 使…

SpringBoot学习——项目用maven打包成jar包 windows + Linux平台运行 Linux安装java 遇到的问题

目录 引出认识maven以及packageMaven 构建生命周期package:打包,打包成jar包和使用(1)引入maven插件(2)打包jar包 windows平台运行jar包1.windows下安装java环境2.直接运行一个jar包 Linux平台运行jar包1.L…

RocketMQ 为何性能高

本文主要从性能角度考虑 RocketMQ 的实现。 整体架构 这是网络上流行的 RocketMQ 的集群部署图。 RocketMQ 主要由 Broker、NameServer、Producer 和 Consumer 组成的一个集群。 **NameServer:整个集群的注册中心和配置中心,管理集群的元数据。包括 T…

将本地MySql数据库导入到linux服务器上

首先 你的linux服务器上需要有MySql 如果您还没有安装 可以参考我的文章 在阿里云linux上安装MySql数据库 然后 我们在本地打开MySql的管理工具 我这里使用的 Navicat for MySQL 右击需要导入的数据库 如下图操作 选择一个目录存放文件 然后点击开始 走完一次之后点击关闭 查…

【多线程系列-01】深入理解进程、线程和CPU之间的关系

深入理解进程线程的关系 一,深入理解进程、线程与CPU之间的关系1,进程与线程1.1,进程与线程的关系1.2,在java中进程与线程的关系 2,进程间的通信方式2.1,管道2.2,信号2.3,消息队列2.…

taro-ui-vue3 的虚拟列表组件VirtualScroll

项目&#xff1a;taro3vue3 用法&#xff1a; <at-virtual-scrollbench"5":height"listHeight":items"fieldList":item-height"itemHeight" ><template #default"{ index, item }"><view :id"merchan…

【力扣算法12】之 11. 盛最多水的容器 python

文章目录 问题描述示例1示例2提示 思路分析代码分析完整代码详细分析运行效果截图调用示例运行结果完结 问题描述 给定一个长度为 n 的整数数组 height 。有n条垂线&#xff0c;第i条线的两个端点是(i, 0)和(i, height[i])。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构…

SQL 优化换汤不换药的时代变了与SQL审核

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到3群&#xff08;共…

Kubernetes轻量级日志工具Loki安装及踩坑记录

Loki简介 Loki是Grafana出品的一个轻量级日志系统&#xff0c;熟悉ELK的都知道ELK使用起来的成本&#xff0c;而且仅仅是日志检索使用ELK的话有点大材小用了。Loki8技术栈中使用了以下组件。 Promtail 用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具&#xff0c…

谷歌Bard更新中文支持;GPT-4:1.8万亿参数、混合专家模型揭秘; Meta推出商用版本AI模型

&#x1f989; AI新闻 &#x1f680; 谷歌的AI聊天工具Bard更新&#xff0c;增加中文支持 摘要&#xff1a;谷歌的AI聊天工具Bard新增中文环境&#xff0c;用户可以使用简体和繁体中文进行交流。然而&#xff0c;与竞品相比&#xff0c;Bard的回复略显生硬&#xff0c;语义理…

C# Winfrom将DataGridView数据导入Excel

1.项目添加Word和Excel的COM类型库引用 2.创建Excel工作表 //定义Excel操作对象Microsoft.Office.Interop.Excel.Application excelApp new Microsoft.Office.Interop.Excel.Application();//定义Excel工作表Microsoft.Office.Interop.Excel.Worksheet worksheet excelApp.Wo…

【专题速递】在线K歌、云化XR、咔嚓剪辑和FFmpeg直播能力更新计划

// 在线K歌的技术方案选型有哪些&#xff1f;对于沉浸式XR我们又有什么新的思考&#xff1f;高性能低依赖的剪辑视频需要具备什么技术&#xff1f;7月29日LiveVideoStackCon2023上海站客户端体验与性能优化专场&#xff0c;为您解答。 客户端体验与性能优化 客户端作为直接面…