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

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

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

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

数据处理:

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

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

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

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

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

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

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

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

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

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

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

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

最终结果如图所示

时间: 2024-10-08 09:25:20

最佳路径分析实现思路及优化研究的相关文章

如何入门拓扑优化研究(转自知乎 周平章博士的文章 很有启发)

最近有很多人私信我咨询如何入门拓扑优化的研究,为了避免重复劳动,我在这篇文章里做一个统一回复. 首先必须声明,我自己也是拓扑优化研究领域的新人,因此本文仅代表我作为一个新人的一些浅薄的看法,大家切记不可奉为圭臬. 一.内功心法:知识体系的构建 如果你仅仅是想"用"拓扑优化技术解决一个实际的工程问题,那么很显然你并不需要什么知识体系,简单地找一款商业软件(如Optistruct/TOSCA/ABAQUS/ANSYS etc.)然后读一下软件的manual,跟着做几个例子,你就可以出师去干

arcgis最佳路径分析

使用ArcGIS Network Analyst模块进行最佳路径分析,可以根据不同的需求,进行相关设置,得到不同意义的最佳路径.例如,省汽油;省驾驶时间;省等待时间;交叉路口最少;自驾旅游可以规划沿途风景最好的路径等等. 此外,不仅可以得到两点之间的最佳路线,还可以得到多点之间的最佳路线.而在求解多个地点之间的最佳路线时,就会涉及到各个地点访问顺序的问题.ArcGIS Network Analyst模块既可以按照用户指定的顺序进行最佳路径分析,也可以按照最佳路径算法默认推荐每个点的最佳访问顺序及

基本概念 深度神经网络压缩与优化研究_王征韬

深度神经网络压缩与优化研究 文献来源:王征韬. 深度神经网络压缩与优化研究[D].电子科技大学,2017. 摘要:深度学习是近年来机器学习领域最有影响力的研究方向,在计算机视觉.自然语言处理的许多问题上都取得了突出的效果.深度学习的本质是大数据支撑下,由多层人工神经网络堆叠形成的信号处理系统,具有参数数目多,计算复杂度高等特点.深度学习的训练和运行都需要大量的运行空间与并行计算设备,这些需求阻碍了深度学习在资源有限的设备,如手机.平板电脑和嵌入式设备上的应用.另一方面,神经网络中普遍存在过参数化

SSE图像算法优化系列二十四: 基于形态学的图像后期抗锯齿算法--MLAA优化研究。

偶尔看到这样的一个算法,觉得还是蛮有意思的,花了将近10天多的时间研究了下相关代码. 以下为百度的结果:MLAA全称Morphological Antialiasing,意为形态抗锯齿是AMD推出的完全基于CPU处理的抗锯齿解决方案.对于游戏厂商使用的MSAA抗锯齿技术不同,Intel最新推出的MLAA将跨越边缘像素的前景和背景色进行混合,用第2种颜色来填充该像素,从而更有效地改进图像边缘的变现效果,这就是MLAA技术. 其实就是这个是由Intel的工程师先于2009年提出的技术,但是由AMD将

Oracle的update语句优化研究

最近研究sql优化,以下文章转自互联网: 1.     语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation set join_state='1'whereyear='2011' 更新年度为“2011”的数据的join_state字段为“1”.如果更新的字段加了索引,更新时会重建索引,更新效率会慢. 多表关联,并把一个表的字段值更新到另一个表中的字段去: update 表a set a.字段1 = (sele

【思路、优化】UVa 11491 - Erasing and Winning

Juliano is a fan of the TV show Erasing and Winning, where participants are selected in a draw and receive money for taking part in the show. In the show, the presenter writes a number of N digits in a board. The participant must then erase exactly D

javascript最佳实践,包含性能优化、编码实践等。

昨天跳过<javascript高级程序设计>前面几章书的内容,直接跳到最佳实践那一章,然而那一张说的又和我在实习的时候的实践,有很大的关系,因此我就觉得应该整理出来,分享一下,毕竟还是挺好的一部分. 一.编写可维护的代码 可维护的代码就有一些特征: (1)可理解性 (2)直观性 (3)可适应性 (4)可拓展性 (5)可调试性   二.代码约定        1.可读性:代码缩进大小为4个空格 需要进行注释的地方: (1)函数和方法:如函数的目的和用于完成任务所可能使用的算法. (2)大段代码:

[Java Performance] 数据库性能最佳实践 - JPA和读写优化

数据库性能最佳实践 当应用需要连接数据库时,那么应用的性能就可能收到数据库性能的影响.比如当数据库的I/O能力存在限制,或者因缺失了索引而导致执行的SQL语句需要对整张表进行遍历.对于这些问题,仅仅对应用代码进行优化可能是不够,还需要了解数据库的知识和特点. 示例数据库 该数据库表示了128只股票在1年内(261个工作日)的股价信息. 其中有两张表:STOCKPRICE和STOCKOPTIONPRICE. STOCKPRICE中使用股票代码作为主键,另外还有日期字段.它有33408条记录(128

关于嵌在WEBVIEW中的网页游戏的载入优化研究

---------------------------------------------------故事开始----------------------------------------------------------------------------------------- 前端时间,实习公司里要做一个WEB_app  在安卓平台上,具体是什么就不细说了. 在APP中 ,几乎所有的页面都是网页 ,有WEBVIEW来显示的结构. 当中有一个画面是比较复杂的,有较多的动画和交互,原定是