一种基于城市道路网格的重路由及边捆绑方法
技术领域
本发明属于图形和可视化领域,涉及一种基于城市道路网格的重路由及边捆绑方法。
背景技术
图是反映数据间关联关系最重要的一种表达方式,被广泛应用在许多领域。许多问题可以通过建立图模型,得到很好的解决,例如,社交网络、交通网络、计算机网络等问题。图可视化作为可视化的一个重要子领域,为了便于观察者能够更直观明了地理解、分析数据彼此间的关联关系,进一步挖掘有意义的潜在结构模式以及方便地进行相关信息处理等,图可视化通常将数学上用于描述实体间二元关系的抽象图用由点边集合构造而成的图像或图形的形式表现出来。相比于其他可视化表示形式来说,图更适用于探索数据的本质关系。但高效地实现包含多个节点和边的图形可视化是一项具有挑战性的工作。此类图形的绘图通常会受到大量边缘及其交叉所引起的视觉混乱的影响。因此,很难读取节点之间的关系和可能存在于标准节点-链接关系图表示中的高级边缘模式。
为了解决大规模数据引起的边缘混乱问题,并解决一些用例,这些用例侧重于简化大型图的描述,并着重于图的结构,而布局算法是图可视化最核心的要素,对图数据的处理起着决定性的影响,最常见的布局方法有节点-链接法和相邻矩阵两类,我们主要研究节点-链接法。边缘捆绑技术是为了减少节点-链接的混乱而设计的。边缘捆绑一般是通过空间邻近对边缘进行分组,创建易于肉眼跟踪的曲线,模拟成一束束导线,形成视觉上可被整体感知的边束,从而减少边缘交叉,提高辨识度的目的,使用户能够很好的“获取”数据信息。
传统的边缘捆绑技术仅从图本身的可视化情况考虑,虽然很好的将一定意义的边捆绑在一起,达到了一个比较好的效果,但并未考虑与具体的交通路线相结合,导致实际应用功能性不强。因此在实际应用中,随着各种交通流数据的出现,人们想要进一步挖掘交通规律,就必须对大量起点-终点的交通流的边进行绑定处理。为了分析具有交通规律的节点-链接图,找到一种适合城市交通路径中大量数据混乱减少的改进方法就变得非常有必要。
发明内容
有鉴于此,本发明的目的在于提供一种基于城市道路网格的重路由及边捆绑方法。
为达到上述目的,本发明提供如下技术方案:
一种基于城市道路网格的重路由及边捆绑方法,该方法包括以下步骤:
S1:创建所需要的控制网格:确定需要研究的某个城市,获取此城市的OSM路网数据;数据预处理,得到所需路网的交叉点数据;创建所需要的基于城市道路的控制网格;
S2:使用改进后的最短路径算法,将原始边向着控制网格重路由,从而达到聚类的效果;
S3:结合最短路径,利用贝塞尔曲线,将原始边向着重路由的最短路径的边弯曲,从而达到捆绑效果;
S4:设置不同方向的控制点,当与同一路径相切且方向相同,则进行合并方向控制点;
S5:设置红色为起点,蓝色为终点的颜色梯度,依次映射达到渲染效果。
可选的,所述S1中,确定需要研究的某个城市,包括首先获取某个城市的ID,然后获取此城市的OSM路网数据。
可选的,所述S1中,数据预处理,得到所需路网的交叉点数据,具体操作为:
首先,保留某城市的高速公路、一级城市道路和二级城市道路,清除不需要的路网数据,包括生活道路、人行道路和水路草路数据;
然后,将需要的数据保留展示之后,通过ArcGis将路网数据打断,获取路段与路段的交叉点数据,得到控制网格的节点信息。
可选的,所述S1中,依次连接原始路段的端点即节点,形成以原始城市道路网为基础的控制网格。
可选的,所述S2中,使用改进的最短路径算法,将原始边向着控制网格重路由,从而达到聚类的效果,包括以下步骤:
S21:利用改进的Dijkstra最短路径算法,将原始边投影到控制网格的路径边上;
S22:投影存在两大类:单条路径投影和多条路径投影;
S23:单条路径投影:若原始边的两个端点投影点皆在路径上,则直接以投影点作为投影距离计算;若两个端点的投影点有一端落在路径的外部,则就近连接路径的端点作为投影点计算;若两个端点的投影点两端皆落在路径的外部,则分两种情况:
一种是两端的投影点分别在路径的两端外部,则依次就近连接路径端点作为投影点计算;
另一种是两端的投影点落在路径的同一端的外部,则就近连接端点即两个投影点为一个;
S24:多条路径投影:若原始边的两个端点的投影点均在路径的中部,则直接计算;若原始边的两个端点中的其中一个端点的投影点不在路径的中部,则此端点就近连接路径的端点作为投影距离计算;若原始边的两个端点的投影点均不在路径的中部,则两个端点均需与就近路径的端点连接作为投影距离计算;
S25:计算投影距离与中间经过的路径距离,从而得到原始边在控制网格上重路由后的边,从而将使原始边达到聚类效果。
可选的,所述S3中,结合最短路径,利用若干条连续的贝塞尔曲线,将原始边向着重路由的最短路径的边弯曲,从而达到捆绑效果。
可选的,所述S4中,为每一条原始边设置了方向控制点,当原始边拟合的曲线与同一路径相切且方向相同时,则进行方向控制点的合并,从而通过调整部分控制点达到更好的捆绑效果。
可选的,所述S5中,为原始边的起点和终点分别设置不同的颜色,及整条原始边拟合的曲线设置从起点到终点的颜色梯度,设置红色为起点,蓝色为终点的颜色梯度,拟合为曲线后依次映射达到渲染效果。
本发明的有益效果在于:本发明在基于图形可视化的基础上,提出了一种新的创建控制网格的方法:根据某城市的道路网数据提取此城市的道路交叉点,使原始路径分为路段,将路段的端点即交叉点作为控制节点,从而依次连接路段端点即可得到基于某城市道路的控制网格;该控制网格更好的表现了某城市的交通信息网,便于对此城市的交通流数据实现边捆绑,使绑定变得更具实际意义;接着使用改进后的最短路径算法,将原始边往控制网格的路径上重路由,重路由后的边捆绑很好的解决了其中原始边为较短边的问题;利用若干条连续的二次贝塞尔曲线拟合曲线,将原始边向着最短路径的边弯曲,为每一条原始边设置了唯一的方向控制点,当原始边相切与同一条路径且方向相同时,则进行合并方向控制点,很好的解决了曲线拟合结果不完全重合的问题;为了区分方向性,最后为拟合的曲线设置了颜色梯度,起点为红色,终点为蓝色的颜色梯度,对于交通流的数据中,出发点和最终目的地表现鲜明。本发明过程易于理解,针对具有实际交通意义的数据能获得较好的效果。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为本发明的流程图;
图2为本实施例基于某个城市道路网创建的控制网格图;
图3为本实施例算法重路由之后的结果图;图3(a)为单条原始边;图3(b)为重路由结果示意图;
图4为本实施例图3中单条原始边的拟合曲线图;
图5为本实施例调整部分控制点的示意图;图5(a)为合并控制点之前;图5(b)是合并控制点之后;
图6为本实施例输入的节点连接图;
图7为本实施例边捆绑的结果示意图;
图8为本实施例颜色渲染后的结果示意图;图8(a)为自定义颜色梯度,图8(b)为图7渲染后的结果示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,本发明方法提供一种基于城市道路网格的重路由及边捆绑方法具体包括以下步骤:
S1:创建所需要的控制网格:确定需要研究的某个城市,获取此城市的OSM路网数据;数据预处理,得到所需路网的交叉点数据;创建所需要的基于城市道路的控制网格;
S2:使用改进后的最短路径算法,将原始边向着控制网格重路由,从而达到聚类的效果;
S3:结合最短路径,利用贝塞尔曲线,将原始边向着重路由的最短路径的边弯曲,从而达到捆绑效果;
S4:设置不同方向的控制点,当与同一路径相切且方向相同,则进行合并方向控制点;
S5:设置红色为起点,蓝色为终点的颜色梯度,依次映射达到渲染效果。
在本实施例中,通过Openstreetmap确定需要研究的某个城市的ID,然后由此ID获取此城市的OSM路网数据。
在本实施例中,数据预处理,得到所需路网的交叉点数据,具体操作为:
首先,将此城市的OSM路网数据转换为shapefile文件格式,路网数据显示;然后,保留此城市的高速公路、一级城市道路、二级城市道路,清除不需要的路网数据,例如生活道路、人行道路、水路草路数据等;最后,将需要的数据保留展示之后,通过ArcGis将路网数据打断,获取路段与路段的交叉点数据,即得到控制网格的节点信息为163个点信息。
如图2所示,图中即为所创建的控制网格:通过依次连接所得到的163个控制点,即可得到基于此城市道路的控制网格,其中包含了163个点,237条路径边。
在本实施例中,使用改进的最短路径算法,将原始边向着控制网格重路由,从而达到聚类的效果。包括以下步骤:
首先,利用改进的Dijkstra最短路径算法,将原始边投影到控制网格的路径边上,从而计算投影距离;
其次,投影包括两大类,一类是单条路径投影,另一类是多条路径投影。两者原理相同:若原始边的两个端点投影点皆在路径中部,则直接以投影点与原始端点的连线作为投影距离计算;若两个端点的投影点有一端落在路径的延长线上,即路径的外部,则就近连接路径的端点作为投影点,原始边的端点与此投影点的连线作为投影距离进行计算;若两个端点的投影点两端皆落在路径的延长线上,即路径的外部,则分两种情况:
一种是两端的投影点分别在路径的两端的延长线上,则依次就近连接路径端点作为投影点计算;
一种是两端的投影点落在路径的同一端的延长线上,则就近连接的端点作为两个端点的投影点,即两个投影点为一个。
最后,计算投影距离与中间经过的路径距离,从而得到原始边在控制网格上重路由后的边,从而将使原始边达到聚类效果。
如图3所示,图3(a)为单条原始边的示意图,通过改进的最短路径算法将其重路由之后,得到如3(b)所示的重路由结果图,可以发现此条原始边的投影方式为多条路径投影。
在本实施例中,结合最短路径,利用若干条连续的二次贝塞尔曲线,将原始边向着重路由的最短路径的边弯曲,从而得到拟合的曲线图。
如图4所示,为单条原始边的拟合曲线结果图;若以多条原始边为例,将会发现原始边在控制网格的基础上拟合成曲线大大减少了原始边的杂乱程度。
如图5所示,为原始边分别设置了方向控制点,图5(a)为合并控制点之前,圈出部分为之前拟合的曲线没有完全重合的情况,设置方向控制点的目的是为了解决类似这种曲线不完全重合的情况。通过实验发现此两条原始边同时相切于同一条路径的且原始边方向一致,从而进行合并控制点的操作,得到图5(b)所示的结果图,其中可以发现之前不完全重合的曲线完全重合在一起,从而很好的解决了之前拟合为曲线不完全重合的情况,为更多原始边的捆绑减少混乱。
如图7所示,为本实施例输入图6所示的大量节点连接原始边,将其通过算法重路由之后,拟合为曲线,其中调整了部分控制点,可以得到原始图的边捆绑结果示意图,此图没有加颜色渲染,为原始捆绑示意图。
如图8所示,设置如图8(a)所示的颜色梯度,将每条原始边设置为起点为红色,终点为蓝色的,拟合的曲线依次映射,得到图8(b)所示的渲染结果图。
本发明是一种基于城市道路网格的重路由及边捆绑方法,理论知识是以图形可视化为基础,首先需要对所研究的某个城市的路网数据进行预处理,得到所需路网的交叉点数据后,创建所需要的基于城市道路的控制网格;然后是使用改进后的最短路径算法,将原始边向着控制网格重路由,从而达到聚类的效果;接着结合最短路径,利用贝塞尔曲线,将原始边向着重路由的最短路径的边弯曲,从而达到捆绑效果;再接着通过调整部分控制点,将原始捆绑效果变的很好;最后是设置一定的颜色梯度,视觉上达到更好的渲染效果。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。