1.基于最小二乘优化的道路扩展方法,包括以下几个步骤:
(1)生成道路扩展方法所使用的道路网络地图数据;道路扩展方法处理的数据是数据结构为连通图G={V,E}的数据,其中V是道路网络中道路道路之间交叉点的集合,E是交叉点之间的道路段集合;其具体生成步骤如下:(1.1)使用Java OpenStreetMap编辑器,生成GeoJSON格式的道路网络数据;GeoJSON是一种用于编码地理数据的JSON数据结构,其中存储了道路各节点的地理坐标;
(1.2)GeoJSON格式的道路网络数据中存放了道路交叉点的坐标,提取其中的坐标点,并为这些坐标点建立数据结构为连通图G={V,E}的数据;
(2)获得用户选中的焦点道路,以及和此道路相连接的上下文道路;
(3)获得焦点道路和上下文道路中所有节点,即道路间交叉点和道路边界点;
(4)遍历这些节点,为道路扩展创建能量方程,如下公式(7);能量方程可转为矩阵方程Ax=b,其中x存放了节点扩展后的坐标值,即求解目标;
能量方程中DFocus为焦点道路变形约束项,可保证焦点道路扩展到适宜的宽度w;DContext为上下文道路变形约束项,可保证上下文道路在道路扩展后尽量保持原来的长度;DBending为道路变形约束项,可保证有网状结构的道路网络保持原来的形态结构; 和 为顶点平移约束项,可保证整个道路网络不会移出边界; 是各项约束项的系数,且均是软约束,即对于不同情形的道路网络,赋予 适当的值,
即可得出最优的道路扩展结果; 的作用在于使焦点道路扩展到一定宽度;当有很多道路连接着一条较长的焦点道路时,用户能通过增大 的值使道路扩展到恰当的宽度; 用于保证变形后上下文道路依然能保证原有的结构;当道路地图存在很多密集的上下文道路时,用户可以增大 来避免变形后的上下文道路之间的交叉; 用于保证道路网络整体的常规结构; 用于修整道路网络变形后上下文道路的长度,使其依然处于原定的边界盒子中,且一般情况下会赋予 一个较高的值; 用于保证整个道路网络在变形后依然保持原有的视图上下文;
(5)求解矩阵方程Ax=b,将Ax=b转为 向量 存储节点扩展后坐标值(x`u,y`u),故只需计算矩阵A的,便可得出道路扩展后相关节点的坐标值,最后输出道路网络地图;
(6)对于新得到的路网络地图,可能会出现焦点道路和上下文道路交叉的情况;如果焦点道路f继续扩展,焦点道路f可能会和上下文道路c1交叉,或者上下文道路c2和上下文道路c3交叉;对此,在图中加入虚拟道路来解决这一问题;即对于输出的新道路网络,道路扩展方法还需检测其中焦点道路和上下文道路有没有存在交叉现象,或者上下文道路和上下文道路之间存在交叉现象;
(7)若存在道路交叉问题,在交叉的道路间加入n*2条虚拟道路;
(8)重复执行步骤2-7,直到输出的道路网络不存在交叉问题。
2.如权利要求1所述的基于最小二乘优化的道路扩展方法,其特征在于:对步骤(4)所述的道路扩展的实现方法是将道路扩展问题转化为最小二乘优化问题:基于焦点道路的变形创建若干约束条件,以保证焦点道路能扩展到适当的宽度;基于上下文道上路创建若干约束条件,以保证变形最小化或只发生轻度变形;此外,基于扩展区域创建约束条件,以整个道路网络地图在焦点道路扩展后依然能显示原地图的上下文;最后,由这些约束条件经过加权相加构成非线性最小二乘形式的能量方程,由此道路扩展问题转化为优化问题;
步骤4中所述的能量方程及其各项约束项具体是:连通图G=(V,E)表示道路网络的逻辑结构,V表示道路交叉点的集合,E表示道路段的集合;顶点u是集合V中任意一元素,其在图中的像素坐标为(xu,yu);边e={u,v}表示顶点u和v之间的边,其中u,v∈V,e∈E;f表示待扩宽的焦点道路,c表示待扩宽的上下文道路;很明显,顶点u和顶点v在图中有更特殊的含义,顶点u是焦点道路f和上下文道路c之间的交叉点,顶点v是上下文道路c另一边的顶点;
当某段道路被扩宽,道路网络上每一个点u(xu,yu),将会移至新的位置u`(x`u,y`u);Vf表示焦点道路(the focus road)f上点的集合,VN(u)表示顶点u附近的点集合;构成能量方程的各约束项表示如下:a)焦点道路变形约束项:
DFocus=|(x`u-x`v)-(xu-xv)-wx|2+|(y`u-y`v)-(yu-yv)-wy|2
要使焦点道路扩宽w,从另一个角度来说是和此道路相连接的上下文道路上每个点在水平方向和垂直方向上均要移动相应的距离,即wx和wy;α是焦点道路和上下文道路之间夹角,θ是上下文道路与水平线之间的夹角,即倾斜角,故DFocus越来越接近0时,顶点u和v在水平和垂直方向移动的距离越接近wx和wy;当处理多条道路的时候,算法迭代每条焦点道路,并为每条道路创建相应的焦点道路变形公式;
b)上下文道路变形约束项:
DContext=1/Dist(u,v)(|(x'u-x'v)-(xu-xv)|2+|(y'u-y'v)-(yu-yv)|2)
为保持道路网络地图原有的整体结构,上下文道路在道路扩展中应保持原有的长度;
此约束公式旨在保证上下文道路c={u,v}能随着焦点道路的扩展而移动,但不进行放缩;
Dist(u,v)是u和v之间欧式距离,通过乘以Dist(u,v)的倒数,对于较长的道路,此系数能使其不发生或者只发生轻度放缩;
c)道路弯曲变形约束项:
DBending=|a tan2(yu'-y'v,x'u-x'v)-a tan2(yu-yv,xu-xv)|2
除了设置约束项于焦点道路和上下文道路,还需要将另一个重要的约束加在道路弯曲问题上;对于一个规则的、有网状结构的道路网络,为保持原有形态结构,应添加此约束;此约束作用在于,在道路扩展后,上下文道路的倾斜角θ不发生变化;尤其对于处理类似于地铁道路网络图,这种只采取90度角和45度角,高度几何化的图,为其上下文道路创建此约束公式,加大约束公式的权重可保证道路倾斜角不发生变化;
d)顶点平移约束项:
为了使整个道路网络的上下文视图在道路扩展不发生变,道路网路上所有点在扩展后都应该在边界盒子中;Bx和By表示距离地图内边界的区域,Bx被设置为地图宽度的10%,By为地图高度的10%;当焦点道路扩展完成,会出现上下文道路溢出边界;对区域Bx和By加此约束,当上下文道路出现溢出时,处于Bx区域的道路将在垂直方向上移动,处于Bx区域的道路将在水平方向移动,以保证整个道路网络不会移除边界;
e)用户心理地图约束项:
为保证用户优化后的心理地图,希望地图中的道路,尤其是焦点道路,应尽可能接近原来的位置,故除以上约束项外,还提出如下约束项:
此约束公式能使焦点道路上所有点不会离原来的位置太远,并且对焦点道路和上下文道路的这种约束作用能传播到整个网络中,从而不破化用户的心理地图;
将以上约束项加权求和,得到所需的能量方程式(7)。