【重新发现PostgreSQL之美】- 27 无中生有

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: 大家好,这里是重新发现PostgreSQL之美 - 27 无中生有

背景


场景:

•   路径规划: 大型商业综合体, 自动驾驶, 虚拟现实.

•   共享出行(拼车), 配送调度(餐饮、包裹).

•   刑侦: 轨迹相遇分析

                       《重新发现PostgreSQL之美- 11 时空轨迹系统新冠&刑侦&预测》

挑战:

•   传统数据库不支持路网数据, 需要move data到应用端进行计算.

•   现实中轨迹存在缺失点, 当需要分析轨迹相遇事件时, 准确度下降.

•   在共享出行拼单, 包裹和餐饮配送中存在一到多, 多到多的路径规划, 非常复杂传统数据库不支持.

PG 解决方案:

•   支持路网数据存储: 点, 线. 支持道路正、反权重来表示路段通畅度.

•   内置多重路径规划算法, 支持one to one,one to many,many to one,many to many等算法.

 

pgrouting

https://docs.pgrouting.org/latest/en/index.html

https://workshop.pgrouting.org/

数据库路由优点:

•   兼容更多客户端, 都可以修改数据和属性,例如QGIS通过JDBC、ODBC 或直接使用Pl/pgSQL。客户端可以是PC 或移动设备。

•   数据更新后, 全网可见. 无需预先计算。

•   路径规划中的变量: “成本”、“路段” 参数可以通过SQL 动态计算,其值可以来自多个字段或表。

◦                    例如路段施工、路段拥堵都可以实时反馈.

核心功能, pgRouting 库包含以下功能(算法):

•   All Pairs Shortest Path, Johnson’s Algorithm

•   All Pairs Shortest Path, Floyd-Warshall Algorithm

•   Shortest Path A*

•   Bi-directional Dijkstra Shortest Path

•   Bi-directional A* Shortest Path

•   Shortest Path Dijkstra

•   Driving Distance

•   K-Shortest Path, Multiple Alternative Paths

•   K-Dijkstra, One to Many Shortest Path

•   Traveling Sales Person

•   Turn Restriction Shortest Path (TRSP)

 

例子

某个轨迹信息:

point1, ts  

point2, ts  

...  

pointn, ts  

绘图后发现缺失某些点, 出现飞行轨迹, 怎么办?以下是路网情况, cost可以表示为当时的道路通过耗时

pointx1, pointy1, cost, reverse_cost  

pointy1, pointz1, cost, reverse_cost  

...  

point??, point??, cost, reverse_cost  

无中生有:

采用one to one的算法的到缺失路径

https://docs.pgrouting.org/latest/en/pgr_dijkstra.html

pgr_dijkstra(Edges SQL, start_vid,  end_vid [, directed])  

pgr_dijkstra(Edges SQL, start_vid,  end_vids [, directed])  

pgr_dijkstra(Edges SQL, start_vids, end_vid  [, directed])

pgr_dijkstra(Edges SQL, start_vids, end_vids [, directed])  

pgr_dijkstra(Edges SQL, Combinations SQL [, directed]) -- Proposed on v3.1  

RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)  

OR EMPTY SET  

Example

•   From vertex to vertex on a directed graph

SELECT * FROM pgr_dijkstra(  

   'SELECT id, source, target, cost, reverse_cost FROM edge_table',  

   2, 3  

);  

seq | path_seq | node | edge | cost | agg_cost  

-----+----------+------+------+------+----------  

  1 |        1 |    2 |    4 |   1 |        0  

  2 |        2 |   5 |    8 |    1 |       1  

  3 |        3 |   6 |    9 |    1 |       2  

  4 |        4 |   9 |   16 |    1 |       3  

  5 |        5 |   4 |    3 |    1 |       4  

  6 |        6 |   3 |   -1 |    0 |       5  

(6 rows)  

 

参考

https://locatepress.com/pgrouting

https://pgrouting.org/

https://www.openstreetmap.org/#map=4/36.96/104.17

 

 

 



相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
7月前
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
20695 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
消息中间件 XML 网络协议
『NLog』.Net使用NLog使用方式及详细配置(输出至文件/RabbitMQ/远程网络Tcp)
📣读完这篇文章里你能收获到 - Nlog输出至文件/RabbitMQ/远程网络Tcp配置文档 - Nlog配置参数详解 - .NET CORE项目接入
6334 0
『NLog』.Net使用NLog使用方式及详细配置(输出至文件/RabbitMQ/远程网络Tcp)
|
资源调度 分布式计算 安全
YARN Capacity Scheduler容量调度器(超详细解读)
YARN Capacity Scheduler容量调度器(超详细解读)
2503 0
YARN Capacity Scheduler容量调度器(超详细解读)
|
5月前
|
人工智能 自然语言处理 安全
AI技术发展下,单智能体局限性凸显,如何通过MCP和A2A协议实现智能体团队协作转变?
本文智能体专家三桥君探讨了AI智能体协作的关键技术MCP(工具调用协议)和A2A(智能体协作协议)。MCP扩展智能体功能边界,支持动态连接外部工具;A2A实现智能体间的安全协作与状态同步,通过AgentCard实现能力匹配。二者集成后,可构建跨框架协作生态,解决复杂任务处理难题。三桥君指出,拥抱该技术体系是突破单智能体局限、实现AGI落地的核心路径。
248 0
|
11月前
|
人工智能 数据可视化 数据处理
【2025低代码前瞻】:平台赋能的无限可能
低代码平台正成为企业数字化转型的核心工具,2025年将通过可视化开发、核心引擎升级、模型驱动、数据处理增强、AI融合、插件生态丰富、开放架构和强化企业功能等趋势,大幅提升开发效率与灵活性。可视化开发实现全员参与,拖拽式组件、实时预览和多人协作等功能显著提高开发速度;核心引擎如SQL引擎、功能引擎等的智能化升级支持高效开发;模型驱动自动生成高质量代码,智能优化逻辑并确保跨平台兼容;数据处理能力增强,支持跨数据库操作与实时流处理;丰富的插件生态覆盖多行业需求;开放架构结合微服务与开源框架提升扩展性;低代码平台将在2025年为企业带来更高效率、更低成本和更强创新能力。
448 32
|
人工智能 自然语言处理 运维
工业组态 + LLM : 大模型技术引领传统工业软件创新与实践(上)
工业组态 + LLM : 大模型技术引领传统工业软件创新与实践(上)
2755 1
|
Java Python
gc模块的set_threshold函数
gc模块的set_threshold函数
357 1
|
机器人 芯片
ChatGPT提问技巧——对话提示
ChatGPT提问技巧——对话提示
1213 8
|
Cloud Native 关系型数据库 新能源
|
小程序
【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)
【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)

热门文章

最新文章