بنقرة واحدة
shanxi-resilience-path-query
陕交控项目专用路网路径查询工具 - 提供相邻节点查询、最短路径、Top N 替代路径、排除节点查询等功能,支持递归 CTE 和 pgRouting 两种实现方式
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
陕交控项目专用路网路径查询工具 - 提供相邻节点查询、最短路径、Top N 替代路径、排除节点查询等功能,支持递归 CTE 和 pgRouting 两种实现方式
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
陕交控项目专用 pgRouting 路网优化工具 - 基于 PostgreSQL + PostGIS + pgRouting 构建高速路网拓扑,支持最短路径、Top N 路径、排除节点查询等高性能路径分析功能
陕交控项目专用数据导入工具 - 处理收费单元路径、收费站信息、收费路段等基础数据的Excel/CSV多版本导入,严格遵循数据字典,自动生成建表语句和导入脚本
陕交控项目专用文档更新工具 - 自动更新会话记录、业务逻辑记录、表口径总表等项目文档,保持文档与代码同步
陕交控项目专用 Git 操作管理 - 规范化的提交、分支管理、GitHub 协作流程,包含常用 Git 操作命令模板和最佳实践
陕交控项目批量处理并行化工具 - 将单进程 ETL/统计任务改造为多进程并行模式,含 CSV 分区读取、fork-safe DB、ON CONFLICT 累加、mini-batch 即时刷盘等完整模式
陕交控项目专用SQL生成工具 - 按照项目规范生成DDL/DML/SQL检查语句,支持数据仓库分层(DIM/DWD/DWS/ADS),自动添加中文注释和版本字段
| name | shanxi-resilience-path-query |
| description | 陕交控项目专用路网路径查询工具 - 提供相邻节点查询、最短路径、Top N 替代路径、排除节点查询等功能,支持递归 CTE 和 pgRouting 两种实现方式 |
执行本 Skill 前,必须先阅读 docs/数据表说明.md,重点关注以下表的字段定义和查询示例:
dwd_tom_noderelation — 路网拓扑结构明细表dwd_tom_network_edges — pgRouting 边表dwd_tom_network_vertices — pgRouting 节点映射表dwd_section_path — 收费单元路径明细表(section_number 核心字段)编写路径查询 SQL 时,禁止凭记忆假设字段名或节点类型枚举值,必须以 docs/数据表说明.md 中的数据字典为准。
本 Skill 用于高速路网的路径查询,包括相邻节点查询、两节点间路径查询等功能。
查询某个收费单元的直接前驱或后继节点。
-- 获取下一个节点
SELECT * FROM get_next_sections('G007061003000210', '202512');
-- 获取上一个节点
SELECT * FROM get_prev_sections('G007061003000210', '202512');
-- 或者使用递归CTE版本
SELECT * FROM get_next_nodes('G007061003000210', '202512');
SELECT * FROM get_prev_nodes('G007061003000210', '202512');
使用 pgRouting 快速查找最短路径。
-- pgRouting 版本(推荐,~22ms)
SELECT * FROM find_shortest_path_pgr(
'G007061003000210', -- 起点
'G004061002000910', -- 终点
'202512' -- 版本
);
-- 递归CTE版本(~30s)
SELECT * FROM find_path_simple(
'G007061003000210',
'G004061002000910',
'202512'
);
查找多条替代路径。
-- pgRouting 贪婪算法(推荐,~81ms)
SELECT * FROM find_top_n_paths_pgr(
'G007061003000210',
'G004061002000910',
'202512',
5
);
-- 递归CTE版本
SELECT * FROM find_top_n_paths(
'G007061003000210',
'G004061002000910',
'202512',
5, -- 返回条数
30 -- 最大深度
);
查询时排除某些节点(用于施工封闭等情况)。
SELECT * FROM find_shortest_path_excluding(
'G007061003000210',
'G004061002000910',
'202512',
ARRAY['G007061003000420'] -- 排除的节点
);
查找两节点间的所有可能路径。
-- 递归CTE
SELECT * FROM find_all_paths(
'G007061003000210',
'G004061002000910',
'202512',
20 -- 最大深度
);
-- 带剪枝优化
SELECT * FROM find_shortest_path(
'G007061003000210',
'G004061002000910',
'202512',
15, -- 最大深度
5 -- 最大路径数
);
-- 双向搜索优化
SELECT * FROM find_all_paths_bidirectional(
'G007061003000210',
'G004061002000910',
'202512',
20,
10
);
| 字段 | 类型 | 说明 |
|---|---|---|
| path_id | INT | 路径ID(多条时) |
| node_path | VARCHAR[] | 节点ID数组 |
| total_miles | BIGINT | 总里程(米) |
| node_count | BIGINT | 节点数 |
| 字段 | 类型 | 说明 |
|---|---|---|
| node_id | VARCHAR | 节点ID |
| node_type | INT | 节点类型(1-普通,2-省界,3-收费站) |
| node_name | VARCHAR | 节点名称 |
| miles | INT | 里程(米) |
| 类型值 | 说明 |
|---|---|
| 1 | 普通收费单元 |
| 2 | 省界收费单元 |
| 3 | 收费站 |
支持查询的版本:202312, 202409, 202411, 202507, 202512
-- 查询可用版本
SELECT * FROM dim_tom_noderelation_version;
起点: G007061003000210
终点: G004061002000910
版本: 202512
-- 快速验证路径查询
SELECT * FROM find_shortest_path_pgr(
'G007061003000210',
'G004061002000910',
'202512'
);
| 场景 | 推荐函数 | 性能 |
|---|---|---|
| 只需要最短路径 | find_shortest_path_pgr | ⚡⚡⚡ ~22ms |
| 需要多条替代路径 | find_top_n_paths_pgr | ⚡⚡ ~81ms |
| 排除节点查询 | find_shortest_path_excluding | ⚡⚡ |
| 获取相邻节点 | get_next_sections | ⚡⚡⚡ |
| 全路径搜索 | find_all_paths | ⚡ (慢) |
| 文件路径 | 说明 |
|---|---|
sql/pgrouting/helper_functions.sql | 相邻节点查询 |
sql/pgrouting/query_functions_pgr.sql | pgRouting 路径查询 |
sql/pgrouting/query_top_n_paths_pgr.sql | Top N 路径 |
sql/pgrouting/query_functions_excluding.sql | 排除节点查询 |
sql/views/create_v_tom_network.sql | 递归CTE 路径查询 |
docs/高速路网拓扑结构表使用指南.md | 完整使用文档 |
skill: shanxi-resilience-path-query
version_yyyyMM,避免跨版本数据混淆p_max_depth 建议 10-20