OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  tabussen:瑞典 Västerbotten 及 Umeå 地区的公共交通行程规划

tabussen:瑞典 Västerbotten 及 Umeå 地区的公共交通行程规划

 
  oauth ·  2026-02-23 03:53:34 · 3 次点击  · 0 条评论  

名称: tabussen
描述: 韦斯特博滕省及于默奥市公共交通行程规划工具(Tabussen/Ultra)。使用 ResRobot API 规划公交行程。支持韦斯特博滕省内的站点、地址、坐标、区域及本地线路。
许可证: MIT
compatibility: 需要 curl 和 jq。适用于 Claude Code 及兼容代理。
元数据:
author: simskii
version: "1.0.0"
region: sweden-vasterbotten


Tabussen 行程规划器

规划瑞典韦斯特博滕省的公共交通行程,包括于默奥本地交通(Ultra)和区域线路(韦斯特博滕省交通局)。

概述

本工具使用 ResRobot API(Trafiklab)为 Tabussen/Ultra 提供行程规划。ResRobot 是瑞典覆盖所有运营商(包括韦斯特博滕省交通局)的全国性公共交通 API。

覆盖范围:
- Ultra(于默奥本地公交)
- 韦斯特博滕省交通局(区域公交)
- 往返瑞典其他地区的连接
- 适用的火车连接

命令

1. 搜索地点

搜索站点、车站或兴趣点。

./search-location.sh <查询词> [数量限制]
参数 描述
查询词 要搜索的地点名称(添加 ? 进行模糊搜索)
数量限制 显示的结果数量(默认:5,最大:10)

输出包含:
- ID - 站点标识符(用于行程搜索)
- 名称 - 站点的官方名称
- 坐标 - 纬度、经度
- 权重 - 交通流量指标(越高表示流量越大)

搜索提示:
- 使用 ? 后缀进行模糊/部分匹配:"Vasaplan?"
- 不使用 ? 进行精确搜索:"Vasaplan"
- 包含城市名称以提高精度:"Umeå Vasaplan"

2. 行程搜索

使用两个地点的 ID 规划它们之间的行程。

./journey.sh <起点ID> <终点ID> [日期时间] [模式]
参数 描述
起点ID 起点站点 ID(来自搜索)
终点ID 终点站点 ID
日期时间 可选:"18:30""明天 09:00""2026-01-28 14:00"
模式 可选:"depart"(默认)或 "arrive"

基于坐标的搜索:

./journey.sh "63.825#20.263" <终点ID> [日期时间] [模式]

使用 纬度#经度 格式(WGS84 十进制度)。


理解用户时间意图

在搜索之前,理解用户的需求:

意图类型

用户表述 意图 如何查询
"现在"、"下一班车"、"我怎么去..." 现在出发 不使用日期时间参数
"30分钟后"、"1小时后" 稍后出发 计算时间,使用 depart 模式
"大约15:00"、"下午某个时间" 大约时间 使用偏移时间查询(见下文)
"18:00前到达"、"需要在9点到达" 在指定时间前到达 使用 arrive 模式
"明天早上"、"周五10点" 未来时间 使用具体日期时间

处理“大约时间”查询

当用户想要“大约”某个时间的选项时,提前 15-30 分钟查询以显示前后选项:

# 用户:"我想在大约15:00出行"
# 在14:30查询以获取14:30-16:00+的选项
./journey.sh ... "14:30" depart

相对时间计算

将相对时间转换为绝对时间:

用户表述 当前时间:14:00 查询时间
"30分钟后" -> "14:30"
"1小时后" -> "15:00"
"2小时后" -> "16:00"

LLM 响应格式化

向用户呈现行程结果时,请使用以下表情符号和格式化指南。

表情符号参考

表情符号 用途
bus 公交车(Tabussen/Ultra)
train 火车
walk 步行路段
clock 时间/时长
clock1 出发时间
goal 到达时间
pin 站点/车站
house 起点(家/起点)
target 目的地
warning 延误或中断
check 准点
arrows_counterclockwise 换乘

响应结构

始终包含工具输出中的这些关键要素:

  1. 出发时间 - 用户需要开始的实际时间(包括步行)
  2. 步行路段 - 任何步行的距离和时间
  3. 交通工具出发时间 - 公交车实际离开的时间
  4. 到达时间 - 用户到达目的地的时间
  5. 线路号和方向 - 乘坐哪路公交车

响应格式示例

对于简单的直达行程:

**现在出发** 从 Vasaplan

**Vasaplan** -> **Universitetet**
1 路公交车(开往 Mariehem)于 09:07 出发
09:18 到达 Universitetet

总计:11 分钟

对于需要换乘的行程:

**08:45 出发**

步行 300 米至 Vasaplan(约 4 分钟)

**Vasaplan** -> **Umeå C** -> **Skellefteå**

**第一段:**
1 路公交车于 08:51 出发
09:05 到达 Umeå C

在 Umeå C 换乘(15 分钟)

**第二段:**
100 路公交车(开往 Skellefteå)于 09:20 出发
11:45 到达 Skellefteå 汽车站

总计:3 小时 | 1 次换乘

步行路段详情

始终显示步行详情:
- 距离(米)
- 在“出发时间”计算中包含步行时间
- 步行时间估算:约 100 米/分钟(正常步行速度)

呈现多个选项

显示行程选项时,明确说明时间:

我为您找到了 3 个选项:

**选项 1 - 现在出发 (09:00)** 推荐
步行 5 分钟 -> 09:07 的 1 路公交车 -> 09:25 到达
总计:25 分钟

**选项 2 - 15 分钟后出发 (09:15)**
步行 5 分钟 -> 09:22 的 1 路公交车 -> 09:40 到达
总计:25 分钟

**选项 3 - 30 分钟后出发 (09:30)**
步行 5 分钟 -> 09:37 的 8 路公交车 -> 09:48 到达
总计:18 分钟 | 出发较晚但更快

哪个最适合您?

LLM 工作流程:如何规划行程

当用户询问行程时,请遵循此工作流程:

步骤 1:理解时间意图

解析用户需求:
- "我怎么去..." -> 现在出发
- "我需要在18:00到达那里" -> 到达模式
- "大约下午3点左右" -> 查询 14:30,显示范围
- "大约一小时后" -> 从当前时间计算

步骤 2:搜索两个地点

分别搜索起点和终点:

./search-location.sh "Vasaplan?"
./search-location.sh "Universitetet?"

步骤 3:验证搜索结果

仔细检查每个结果:

  1. 完全匹配还是接近匹配? - 如果名称与用户询问的匹配,则继续。
  2. 返回了多个结果? - 脚本最多显示 10 个匹配项。如果第一个结果不明确正确,请向用户确认。
  3. 名称差异很大? - 如果用户询问 "university" 而结果显示 "Umeå Universitet",请向用户确认。
  4. 未找到结果? - 尝试替代策略(见下文)。

步骤 4:处理模糊或失败的搜索

当结果不匹配或模糊时,提出澄清问题:

我搜索了 "centrum" 并找到了多个地点:
1. Umeå Vasaplan(中央公交枢纽)
2. Skellefteå centrum
3. Lycksele centrum

您指的是哪一个?

当未找到结果时,尝试以下策略:

  1. 尝试添加城市名:
    bash # 如果 "Storgatan 10" 失败,尝试: ./search-location.sh "Storgatan 10, Umeå?"

  2. 尝试常见变体:
    bash # "Universitetet" -> "Umeå universitet" # "Sjukhuset" -> "NUS" 或 "Norrlands universitetssjukhus"

  3. 使用模糊搜索(添加 ?):
    bash ./search-location.sh "univ?"

步骤 5:执行行程搜索

一旦确认了两个地点的 ID:

./journey.sh <起点ID> <终点ID> [日期时间] [模式]

步骤 6:格式化响应

使用上述格式化指南清晰地呈现结果。始终使用工具输出的实际数字 - 切勿估算或推测。


查询格式化规则

搜索 API 对格式化敏感。请遵循以下规则:

于默奥常见站点名称

用户表述 搜索词
"Vasaplan"、"centrum" "Umeå Vasaplan?"
"Universitetet"、"uni" "Umeå universitet?"
"NUS"、"sjukhuset" "Norrlands universitetssjukhus?"
"Ikea" "IKEA Umeå?"
"Flygplatsen" "Umeå Airport?"
"Järnvägsstationen"、"tåget" "Umeå centralstation?"

区域目的地

目的地 搜索词
Skellefteå "Skellefteå busstation?"
Lycksele "Lycksele busstation?"
Vindeln "Vindeln station?"
Robertsfors "Robertsfors centrum?"
Holmsund "Holmsund centrum?"

街道地址

包含城市名称以提高准确性:

./search-location.sh "Storgatan 25, Umeå?"
./search-location.sh "Kungsgatan 10, Skellefteå?"

示例

示例 1:现在出发(于默奥本地)

用户:"我怎么从 Vasaplan 去 NUS?"

./search-location.sh "Umeå Vasaplan"
./search-location.sh "NUS?"
./journey.sh 740020116 740023840

响应:

**现在出发** 从 Vasaplan

**Vasaplan** -> **Universitetssjukhuset**
8 路公交车(开往 Lyktvägen)于 11:01 出发
11:06 到达

总计:5 分钟 | 直达,无需换乘

示例 2:区域行程

用户:"我明天 8 点需要从于默奥去谢莱夫特奥"

./search-location.sh "Umeå Vasaplan"
./search-location.sh "Skellefteå?"
./journey.sh 740020116 740000053 "明天 08:00"

响应:

**明天 08:04 出发** 从 Vasaplan

步行 766 米至 Umeå 汽车站(约 11 分钟)

**Umeå 汽车站** -> **Skellefteå 汽车站**
20 路公交车(省交通局,开往 Haparanda)于 08:15 出发
10:40 到达 Skellefteå 汽车站

总计:2 小时 36 分钟 | 直达(含步行)

示例 3:在指定时间前到达

用户:"我明天 08:00 前需要到达 NUS"

./search-location.sh "Umeå Vasaplan"
./search-location.sh "NUS?"
./journey.sh 740020116 740023840 "明天 08:00" arrive

响应:

**08:00 前到达** NUS

**Vasaplan** -> **Universitetssjukhuset**
9 路公交车于 **07:51** 出发
**07:56** 到达 - 4 分钟缓冲时间

请在 07:51 前从 Vasaplan 出发以确保准时到达!

示例 4:从地址/坐标出发

用户:"我在于默奥的 Storgatan 50,怎么去宜家?"

./search-location.sh "Storgatan 50, Umeå?"
# 如果无结果,使用坐标
./journey.sh "63.826#20.263" 740066123

日期时间格式

所有时间均为瑞典当地时间(CET/CEST)。

格式 示例 含义
(空) 现在出发
HH:MM "08:30" 今天 08:30
明天 HH:MM "明天 09:00" 明天 09:00
YYYY-MM-DD HH:MM "2026-01-28 14:00" 特定日期

输出格式

行程选项(原始工具输出)

==============================================================
选项 1: Vasaplan -> Universitetet
==============================================================
日期:    2026-01-28
出发:  09:04
到达:  09:12
换乘次数: 0

路段:
  -> 公交车 省交通局 - 1 路公交车
    从: 09:04 Vasaplan (Umeå kn)
    到:   09:12 Universitetet (Umeå kn)
    方向: 开往 Mariehem

交通工具类型

类型 描述
BUS Tabussen/Ultra/省交通局公交车
JLT 区域公交车(省交通局)
JRE 区域火车
WALK 步行路段

韦斯特博滕省的运营商

运营商 描述
Länstrafiken Västerbotten 区域和本地公交车
Ultra 于默奥本地交通(属于省交通局)
SJ 长途火车
Norrtåg 区域火车

错误处理

"未找到地点"

搜索未返回任何结果。

策略:
1. 检查拼写(瑞典语:å, ä, ö)
2. 尝试添加城市名后缀
3. 使用模糊搜索(添加 ?)
4. 尝试常见的替代名称
5. 向用户请求澄清

"未找到行程"

没有可用的路线。

策略:
1. 检查该时段是否有服务(深夜班次有限)
2. 尝试不同的出发时间
3. 建议附近的替代站点
4. 注意某些区域线路班次有限

常见问题

问题 解决方案
"Vasaplan" 返回多个结果 使用 "Umeå Vasaplan"
站点未找到 尝试使用 ? 进行模糊搜索
深夜无线路 Ultra 夜间服务有限
等待时间长 区域线路可能每小时一班

快速参考

热门于默奥站点(Ultra)

站点 ID 备注
Vasaplan 740020116 中央枢纽
Universitetssjukhuset (NUS) 740023840 医院
Universum 740026881 大学区
Umeå Busstation - 区域公交车出发点
Västerslätt Centrum 740045407 西部郊区

关键区域站点

站点 ID 备注
Skellefteå busstation 740000053 区域枢纽
Lycksele busstation - 内陆枢纽
Vindeln station - 火车连接点
Robertsfors centrum - 沿海线路

API 详情(用于脚本开发)

本工具使用 Trafiklab 的 ResRobot API v2.1。

基础 URL: https://api.resrobot.se/v2.1/

端点:
- 站点查询:/location.name
- 行程规划器:/trip

关键参数:
- accessId - API 密钥(必需)
- format - json 或 xml
- originId / destId - 站点 ID
- date / time - 出行日期/时间
- searchForArrival - 1 表示到达时间搜索

获取 API 密钥: 在 https://developer.trafiklab.se 注册


关于韦斯特博滕交通的说明

Ultra(于默奥本地)

  • 在于默奥市中心班次频繁
  • 1-9 路线路最常见

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor