名称: skanetrafiken
描述: 瑞典斯科讷省公共交通行程规划工具(Skånetrafiken)。规划巴士/火车行程,包含实时延误信息。支持车站、地址、地标以及前往哥本哈根的跨境行程。
许可证: MIT
compatibility: 需要 curl 和 jq。适用于 Claude Code 及兼容的智能体。
元数据:
author: rezkam
version: "1.2.0"
region: sweden
使用实时出发信息规划瑞典斯科讷省的公共交通行程。
搜索车站、地址或兴趣点。
./search-location.sh <查询词> [数量限制]
| 参数 | 描述 |
|---|---|
查询词 |
要搜索的地点名称 |
数量限制 |
显示的结果数量(默认:3,最大:10) |
输出包含:
- ID - 地点标识符(在行程搜索中使用)
- 名称 - 地点官方名称
- 类型 - STOP_AREA(车站)、ADDRESS(地址)或 POI(兴趣点)
- 区域 - 地区/市镇
- 坐标 - 纬度,经度
何时增加数量限制:
- 第一个结果不符合用户意图
- 用户查询词有歧义(例如,“station”、“centrum”)
- 需要向用户展示多个选项以供选择
使用地点 ID 规划两个地点之间的行程。
./journey.sh <起点ID> <起点类型> <终点ID> <终点类型> [日期时间] [模式]
| 参数 | 描述 |
|---|---|
起点ID |
起点地点 ID(来自搜索)或坐标(纬度#经度) |
起点类型 |
STOP_AREA、ADDRESS、POI 或 LOCATION(用于坐标) |
终点ID |
终点地点 ID 或坐标 |
终点类型 |
终点类型 |
日期时间 |
可选:"18:30"、"tomorrow 09:00"、"2026-01-15 09:00" |
模式 |
可选:"depart"(默认)或 "arrive" |
重要提示: 行程 API 仅接受 STOP_AREA 和 LOCATION 类型。对于 ADDRESS 或 POI 结果,请使用坐标作为 纬度#经度,类型为 LOCATION。
在搜索之前,请理解用户的需求:
| 用户表述 | 意图 | 如何查询 |
|---|---|---|
| "现在"、"下一班车"、"我怎么去" | 立即出行 | 不使用日期时间参数 |
| "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" |
向用户呈现行程结果时,请使用以下表情符号和格式指南。
| 表情符号 | 用途 |
|---|---|
| 🚂 | 火车(Pågatåg、Öresundståg) |
| 🚌 | 巴士 |
| 🚇 | 地铁(哥本哈根) |
| 🚋 | 有轨电车 |
| ⛴️ | 渡轮 |
| 🚶 | 步行路段 |
| ⏱️ | 时间/时长 |
| 🕐 | 出发时间 |
| 🏁 | 到达时间 |
| 📍 | 站点/车站 |
| 🏠 | 起点(家/起点) |
| 🎯 | 目的地 |
| ⚠️ | 延误或中断 |
| ✅ | 准点 |
| 🔄 | 换乘/转车 |
| 🛤️ | 站台/轨道 |
始终包含工具输出中的这些关键要素:
对于简单的直达行程:
🏠 **09:00 从家出发**
🚶 步行 450 米至 Möllevångstorget(5 分钟)
📍 **Möllevångstorget** → 🎯 **Malmö C**
🚌 5 路巴士 09:07 从 Möllevångstorget 出发
🏁 09:18 到达 Malmö C
⏱️ 总计:18 分钟
对于包含换乘的行程:
🏠 **08:45 出发**
🚶 步行 300 米至 Västra Hamnen(4 分钟)
📍 **Västra Hamnen** → 🔄 **Malmö C** → 🎯 **Lund C**
**第一段:**
🚌 2 路巴士 08:51 出发 [🛤️ 站台 A]
🏁 09:05 到达 Malmö C
🔄 在 Malmö C 换乘(6 分钟)
**第二段:**
🚂 Pågatåg 09:11 出发 [🛤️ 4 号轨道]
🏁 09:23 到达 Lund C
⏱️ 总计:38 分钟 | 🔄 1 次换乘
包含延误:
🕐 **14:30 从 Triangeln 出发**
🚂 Öresundståg 1042 → København H
⚠️ 延误 +8 分钟(预计 14:38 而非 14:30)
🏁 约 15:25 到达(正常为 15:17)
关键:始终显示工具输出中的步行详情:
line.distance)工具输出示例:
→ WALK 450m from Kalendegatan to Möllevångstorget
格式化为:
🚶 步行 450 米至 Möllevångstorget(约 5 分钟)
步行时间估算:约 100 米/分钟(正常步行速度)
在显示行程选项时,请清晰地说明时间:
我为您找到了 3 个选项:
**选项 1 - 现在出发(09:00)** ✅ 推荐
🚶 5 分钟步行 → 🚌 5 路巴士 09:07 → 09:25 到达
⏱️ 总计:25 分钟
**选项 2 - 15 分钟后出发(09:15)**
🚶 5 分钟步行 → 🚌 5 路巴士 09:22 → 09:40 到达
⏱️ 总计:25 分钟
**选项 3 - 30 分钟后出发(09:30)**
🚶 5 分钟步行 → 🚂 火车 09:37 → 09:48 到达
⏱️ 总计:18 分钟 | 更快但出发更晚
对出发时间使用清晰的表示法:
| 表示法 | 含义 |
|---|---|
| "现在" | 立即 |
| "15分钟后" | 从现在起 15 分钟 |
| "1小时后" | 从现在起 1 小时 |
| "14:30" | 特定时间 |
当用户请求行程时,请遵循此工作流程:
解析用户的需求:
- "我怎么去..." → 立即出行
- "我需要在 18:00 到达那里" → 到达模式
- "大约下午 3 点左右" → 查询 14:30,显示时间范围
- "大约一小时后" → 从当前时间计算
分别搜索起点和目的地:
./search-location.sh "Malmö C"
./search-location.sh "Emporia"
仔细检查每个结果:
当结果不匹配或模糊时,请提出澄清性问题:
我搜索了“centrum”并找到了多个地点:
1. Malmö Centrum(巴士站)
2. Lund Centrum(巴士站)
3. Helsingborg Centrum(巴士站)
您指的是哪一个?
当未找到结果时,请尝试以下策略:
尝试为地址添加城市名:
bash
# 如果“Storgatan 10”失败,请尝试:
./search-location.sh "Storgatan 10, Malmö"
尝试官方车站名称:
bash
# 如果“Malmö station”失败,请尝试:
./search-location.sh "Malmö C"
仅尝试地标名称(不带城市):
bash
# 如果“Emporia, Malmö”失败,请尝试:
./search-location.sh "Emporia"
最后手段:使用坐标:
纬度#经度 格式行程 API 仅接受:
- STOP_AREA - 巴士/火车站(直接使用 ID)
- LOCATION - GPS 坐标作为 纬度#经度
如果搜索返回 ADDRESS 或 POI:
- 使用搜索结果中的坐标
- 格式化为 纬度#经度,类型为 LOCATION
示例:
# 搜索结果:ID: 123,类型:ADDRESS,坐标:55.605, 13.003
# 在行程中使用:
./journey.sh "55.605#13.003" LOCATION 9021012080000000 STOP_AREA
一旦您确认了两个地点的 ID/坐标:
./journey.sh <起点ID> <起点类型> <终点ID> <终点类型> [日期时间] [模式]
使用上面的表情符号指南清晰地呈现结果。始终使用工具输出中的实际数字 - 切勿推测或估算。
搜索 API 对格式敏感。请遵循以下规则:
使用地标名称,不带城市名。
# 正确
./search-location.sh "Emporia"
./search-location.sh "Triangeln"
./search-location.sh "Turning Torso"
# 错误 - 城市名会破坏兴趣点搜索
./search-location.sh "Emporia, Malmö" # 可能返回错误地点!
./search-location.sh "Triangeln, Malmö" # 不必要,可能失败
包含城市名以提高准确性。
# 正确
./search-location.sh "Kalendegatan 12, Malmö"
./search-location.sh "Storgatan 25, Lund"
./search-location.sh "Drottninggatan 5, Helsingborg"
# 有风险 - 可能有歧义
./search-location.sh "Kalendegatan 12" # 如果无歧义则有效
对中央车站使用“C”后缀。
# 正确
./search-location.sh "Malmö C"
./search-location.sh "Lund C"
./search-location.sh "Helsingborg C"
./search-location.sh "Malmö Hyllie"
./search-location.sh "Malmö Triangeln"
# 错误
./search-location.sh "Malmö" # 有歧义!
./search-location.sh "Malmö Central" # 非官方名称
./search-location.sh "Lund station" # 非官方名称
使用丹麦语名称或常见替代名称。
# 都有效
./search-location.sh "København H"
./search-location.sh "Nørreport"
./search-location.sh "Copenhagen Airport"
./search-location.sh "Köpenhamn"
用户:“我怎么从 Malmö C 到 Lund C?”
./search-location.sh "Malmö C"
./search-location.sh "Lund C"
./journey.sh 9021012080000000 STOP_AREA 9021012080040000 STOP_AREA
响应:
🏠 **现在从 Malmö C 出发**
📍 **Malmö C** → 🎯 **Lund C**
🚂 Öresundståg 1324 09:04 出发 [🛤️ 2b 号轨道]
🏁 09:16 到达 Lund C [🛤️ 1 号轨道]
⏱️ 总计:12 分钟 | ✅ 直达,无需换乘
用户:“我需要从马尔默的 Kalendegatan 12 去 Emporia”
./search-location.sh "Kalendegatan 12, Malmö"
./search-location.sh "Emporia"
./journey.sh "55.595#13.001" LOCATION "55.563#12.973" LOCATION
响应:
🏠 **10:05 出发**
🚶 步行 320 米至 Möllevångstorget(约 3 分钟)
📍 **Möllevångstorget** → 🎯 **Emporia**
🚌 32 路巴士 10:10 出发
🏁 10:28 到达 Emporia
🚶 步行 150 米至目的地(约 2 分钟)
⏱️ 总计:25 分钟
用户:“我需要在明天 18:00 前到达哥本哈根中央车站”
./search-location.sh "Malmö C"
./search-location.sh "København H"
./journey.sh 9021012080000000 STOP_AREA 9921000008600626 STOP_AREA "tomorrow 18:00" arrive
响应:
🎯 **18:00 前到达** København H
📍 **Malmö C** → 🎯 **København H**
🚂 Öresundståg **17:21** 出发 [🛤️ 1 号轨道]
🏁 **17:56** 到达 ✅ 4 分钟缓冲时间
⏱️ 行程:35 分钟
💡 请在 17:21 前从 Malmö C 出发以准时到达!
用户:“我想在 15:00 左右去隆德”
# 提前 30 分钟查询以显示 15:00 左右的选项
./journey.sh 9021012080000000 STOP_AREA 9021012080040000 STOP_AREA "14:30"
响应:
Malmö C → Lund C 在 15:00 左右的选项:
**选项 1 - 14:34 出发**(25 分钟后)
🚂 Pågatåg → 14:52 到达
⏱️ 18 分钟
**选项 2 - 14:49 出发**(40 分钟后)
🚂 Öresundståg → 15:01 到达
⏱️ 12 分钟
**选项 3 - 15:04 出发**(55 分钟后) ✅ 最接近 15:00
🚂 Pågatåg → 15:22 到达
⏱️ 18 分钟
哪个最适合您?