最佳路径分析实现思路及优化研究

最近在实现基于路网数据的最佳路径功能的实现

要求:查询两点间的最佳路径,包括时间最短、距离最短、绕开高速(这三种基于行车),以及对障碍物的规避。并实现对车行和人行的适用方案。

数据存储:路网数据全部存放在postgis数据库中

数据处理:

1、将现有的路网线数据进行拓扑关系的建立,这个可以在一些商业平台上建立,如arcMap和supermap desktop都可以。

2、将数据导入进postgis库中,存储线的长度,平均行驶速度,是否车行,是否人行,道路等级,道路名称等字段进行完善。

3、建立索引字段,将上下游编号字段及空间字段建立索引。

算法实现:本方法采用较为成熟的Dijkstra算法和astar算法。

1、首先对路网信息进行查询,建立网络关系数据,一般方法即为将满足行驶条件的数据全部获取出来。

优化方法:A对起止点位数据进行扩展范围后进行查询如图所示:

进行小范围的查询,将数据不用的数据信息抛出。

B对路网建立数据层级,如果起止点直线距离大于十公里,则在等级较高(高速)的路网上进行查询,以保证数据量的减少,找离起止点最近的高速出入口再进行分析,然后将起止点和对应的出入口按照A优化方法进行数据提取分析。

2、获取最近边界的最优节点。如边界有NODEA和NODEB需要得出最优化NODE节点。

3、运用成熟的Dijkstra算法和astar算法进行分析。按照不同权重获取最佳路径。

4、获取路径后,对起止点与获取出来的路径进行处理,连接起止点其路径起点,连接终点与路径终点。

5、对导航信息进行提取,按照道路名称的不同进行转向行驶提示,并对导航记录关联路段信息。

最终结果如图所示

 

posted @ 2015-03-11 14:11  微创业工作室  阅读(1476)  评论(0编辑  收藏  举报