收藏 分销(赏)

城市地图拓扑数据的存储与应用.doc

上传人:xrp****65 文档编号:7221261 上传时间:2024-12-28 格式:DOC 页数:4 大小:141.50KB 下载积分:10 金币
下载 相关 举报
城市地图拓扑数据的存储与应用.doc_第1页
第1页 / 共4页
城市地图拓扑数据的存储与应用.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
城市地图拓扑数据的存储与应用 目前,我们通常所能拿到的城市地图数据,主要是POI(point of interest)点和道路线数据,为了更好地支持空间关系的查询,为此我们需要建立点与线、线与线之间拓扑关联关系。 中山路 中山路 中山路 珠江路 珠江路 珠江路 珠江路 长江路 长江路 长江路 长江路 鱼市街 进香河路 洪武北路 太平北路 太平北路 太平北路 POI点与线道路示意图 一、 解决方案设计 分析以上这些需求,主要涉及到点与线、线与线之间的拓扑关联关系,至于点与点关系,可以通过以上关系推导出。 1) 点与线的绑定关联 目前城市地图,大都采集道路边上的重要POI点,也就表明POI点与道路有着直接的绑定关联关系,所以,需要在这两者之间建立起这种绑定关系。具体模型如下: 点线拓扑数据的文件结构以及索引结构,待定. 2) 线与线的关联关系 道路拓扑关系,这里不面向车载导航,主要是满足步行和自行车行人的引导需求,道路拓扑存储为”无向图”,不考虑道路转向限制以及红绿灯等待情况。 1 2 4 3 5 9 15 10 6 8 17 7 1 2 3 4 5 2 9 4 15 5 7 1 9 5 17 3 8 2 8 4 10 4 6 3 10 1 15 5 6 1 7 2 17 道路无向图邻接表数据结构 由arc表和node表建立道路网的拓扑结构,索引结构将依据node建立网格索引,拓扑邻接表数据结构将依据这个网格索引来存储道路网拓扑数据,依然按照 Hilbert顺序存储.同时此网格索引还将用于道路网子图的生成,为什么需要生成子图,理由有两个:1,求最短路径,只需要涉及到部分节点和边,也就是需要提取的子图范围;2,子图范围小,运算规模将会很小,有利于提高最短路径算法的效率. 子图生成算法,通过空间索引,确定起点到终点之间大概包含的node节点的子集,再由这个子集,从整个道路拓扑结构图中,提取出只与子集中节点相关的边,即可生成一个子的邻接表数据. 二、 数据处理需求 1) 弧段的处理 普通道路依据交叉口打断,这里需要考虑高架、隧道和地铁的特殊情况,依据实际情况,需进行特别处理,以符合交通的实际情况。 保持整个系统id,全局一致 原始概念意义下的道路id 保持整个系统id,全局一致 原始概念意义下的道路name 弧段id 关联的节点node1_id 关联的节点node2_id 被横截道路名称node1_raodname 被横截道路名称node2_raodname 节点相对方向node1_direction 节点相对方向node2_direction 用于路径权值 弧段长度arc_length 2) 节点的处理 节点只需要node_id 即可。 三、 需要生成的文件 经过一系列数据处理,需要生成满足应用需求的、运行在手机上的各种文件,这里主要包括的文件有: 1) 点线拓扑数据 .plt(point line topology),主要用于存储“原始道路”——“弧段”——“POI点”之间的拓扑关系。从整个文件的排列顺序来看,以原始道路来组织,为了顾及到I/O数据存取这一块的性能——空间邻近、存储邻近,这里采用“四叉树+Hilbert排序”的策略来安排文件的总体顺序。(四叉树,可以在保持原始道路不被切割或者打断情况下完整的索引,Hilbert顺序能保持空间聚簇,特别注意的是,这里的四叉树是建立在“概念意义下的道路”上的空间索引) 2) 点线拓扑数据的索引 .plti(point line topology index),该索引由一个int型变量(实际线在.plt文件中的实际偏移量)、两个byte型变量。对于POI点来说,两个byte型变量分别为该POI点所属弧段在实际线中的编号和该POI点在弧段中的编号;对于实际线来说,后两个byte型变量为均为-1。此索引存放在字典的叶子节点中(说明:两个序号是相对的,比如:一个实际线中中含有8个弧段,第二个弧段含有10个POI点,那么第二个弧段的第2个POI点的索引=实际线的实际偏移地址+(byte)2+(byte)2) 3) 线线拓扑数据,即“道路网”.llt(line line topology),存储整个城市道路网拓扑数据,采用“图”邻接表的方式存储,是在“弧段——节点”拓扑关系基础上建立的。文件的存储顺序按“节点node网格索引+Hilbert排序”的方式来组织。 4) 线线拓扑数据的索引,.llti(line line topology index),按照节点顺序存储每个节点在.llt文件中的实际偏移量,此索引在手机中被一次性全部加载。 5) 弧段坐标数据,.lco(line coordnate),存储弧段坐标序列,主要用于显示系统,显示重画道路数据,以高亮突出显示道路。本文件不可以存储在“点线拓扑数据”中,因为在最短路径重画中,需要单独用到,需单独保存,文件存储顺序按弧段id顺序存储。文件的存储顺序按“节点node网格索引+Hilbert排序”的方式来组织。 6) 弧段坐标数据的索引,.lcoi(line coordinate index),按id顺序存储,查找可采用一维数组直接定位的方式即可。既然按弧段id来查找弧段坐标数据,就要求在“道路网”数据中,加入节点到节点的弧段id信息,即在权重后面多加一个弧段id信息,这样有助于最短路径的重画高亮显示;为了从弧段id到 点线拓扑数据的弧段信息的索引,还需要加入“弧段id——点线拓扑数据中 弧段”索引。 7) 图节点坐标数据,.nco(node coordinate),按id顺序存储,不需要索引。 四、 应用需求 人们对空间关系有着各种各样的认识和需求,我们需要用计算机来存储和刻画这种关系,满足人们的需求。具有有哪些需求呢? 1) 查询某个POI点位于某条路的哪个路段上。输入:POI点name或者点选POI点;输出:POI点所绑定的路段,及此路段的两头被哪两条线打断。 2) 查询某个POI点距离这条路段两头节点的大概长度。输入:POI点name或者点选POI点;输出:POI点到路段两头的距离。 3) 查询同一条路上,两个不同POI之间方向、距离关系。输入:两个POI点的name或者点选;输出:两POI点的方向、距离关系。注:两个POI点位于同一概念意义的路上,但可能不是同一路段,需要推理它们之间的方向关系。 4) 查询任意两POI点之间的最短路径。输入:任意两点;输出:它们之间的路径及距离。 5) 查询附近本路段以及附近路段上有哪些POI点。本查询属于“查找周边”,输入:任意一点或者配合相关属性查找;输出:此点“附近”符合查找条件的POI点。需要借助“道路图”查找相邻路段上绑定的POI点。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服