用于OpenClaw的Google Maps Routes API集成,支持(1)带交通预测的距离/行程时间计算;(2)逐向导航;(3)...
Google Maps QQGoogle Maps 集成由 Routes API...是一项面向实际任务的技能,主要用于GOGLE API KEY 环境变量. 可在 Google Cloud Console 中使用: Routes API, Places API, Geocoding API.;Python 套件: reques。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
基于 Routes API 的 Google Maps 集成。
GOOGLE_API_KEY 环境变量requests(执行 pip install requests 安装)| 环境变量 | 默认值 | 说明 |
|---|---|---|
GOOGLE_API_KEY |
- | 必需。您的 Google Maps API 密钥 |
GOOGLE_MAPS_API_KEY |
- | GOOGLE_API_KEY 的替代选项(作为备用) |
GOOGLE_MAPS_LANG |
en |
响应语言(如 en、he、ja 等) |
在 OpenClaw 配置中设置:
{
"env": {
"GOOGLE_API_KEY": "AIza...",
"GOOGLE_MAPS_LANG": "en"
}
}
python3 skills/google-maps/lib/map_helper.py [options]
python3 skills/google-maps/lib/map_helper.py distance "origin" "destination" [options]
选项:
| 选项 | 可选值 | 说明 |
|---|---|---|
--mode |
driving、walking、bicycling、transit | 出行方式(默认为 driving) |
--depart |
now、+30m、+1h、14:00、2026-02-07 08:00 | 出发时间 |
--arrive |
14:00 | 到达时间(仅 transit 模式支持) |
--traffic |
best_guess、pessimistic、optimistic | 交通模型 |
--avoid |
tolls、highways、ferries | 逗号分隔的规避类型列表 |
示例:
python3 skills/google-maps/lib/map_helper.py distance "New York" "Boston"
python3 skills/google-maps/lib/map_helper.py distance "Los Angeles" "San Francisco" --depart="+1h"
python3 skills/google-maps/lib/map_helper.py distance "Chicago" "Detroit" --depart="08:00" --traffic=pessimistic
python3 skills/google-maps/lib/map_helper.py distance "London" "Manchester" --mode=transit --arrive="09:00"
python3 skills/google-maps/lib/map_helper.py distance "Paris" "Lyon" --avoid=tolls,highways
响应示例:
{
"distance": "215.2 mi",
"distance_meters": 346300,
"duration": "3 hrs 45 mins",
"duration_seconds": 13500,
"static_duration": "3 hrs 30 mins",
"duration_in_traffic": "3 hrs 45 mins"
}
python3 skills/google-maps/lib/map_helper.py directions "origin" "destination" [options]
额外选项(除 distance 支持的选项外):
| 选项 | 说明 |
|---|---|
--alternatives |
返回多条可选路线 |
--waypoints |
途经点(管道符 “|” 分隔) |
--optimize |
优化途经点顺序(旅行商问题,TSP) |
示例:
python3 skills/google-maps/lib/map_helper.py directions "New York" "Washington DC"
python3 skills/google-maps/lib/map_helper.py directions "San Francisco" "Los Angeles" --alternatives
python3 skills/google-maps/lib/map_helper.py directions "Miami" "Orlando" --waypoints="Fort Lauderdale|West Palm Beach" --optimize
响应内容包括:summary、labels、duration、static_duration、warnings、steps[]、optimized_waypoint_order
计算多个起点与多个终点之间的距离:
python3 skills/google-maps/lib/map_helper.py matrix "orig1|orig2" "dest1|dest2"
示例:
python3 skills/google-maps/lib/map_helper.py matrix "New York|Boston" "Philadelphia|Washington DC"
响应示例:
{
"origins": ["New York", "Boston"],
"destinations": ["Philadelphia", "Washington DC"],
"results": [
{"origin_index": 0, "destination_index": 0, "distance": "97 mi", "duration": "1 hr 45 mins"},
{"origin_index": 0, "destination_index": 1, "distance": "225 mi", "duration": "4 hrs 10 mins"}
]
}
python3 skills/google-maps/lib/map_helper.py geocode "1600 Amphitheatre Parkway, Mountain View, CA"
python3 skills/google-maps/lib/map_helper.py geocode "10 Downing Street, London"
python3 skills/google-maps/lib/map_helper.py reverse 40.7128 -74.0060 # New York City
python3 skills/google-maps/lib/map_helper.py reverse 51.5074 -0.1278 # London
python3 skills/google-maps/lib/map_helper.py search "coffee near Times Square"
python3 skills/google-maps/lib/map_helper.py search "pharmacy in San Francisco" --open
python3 skills/google-maps/lib/map_helper.py details ""
| 模型 | 适用场景 |
|---|---|
best_guess |
默认平衡估算 |
pessimistic |
重要会议等场景(最差情况估算) |
optimistic |
最佳情况估算 |
部分功能可能在某些国家/地区不可用:
| 功能 | 可用地区 |
|---|---|
--fuel-efficient |
美国、欧盟及部分国家/地区 |
--shorter |
可用范围有限 |
--mode=two_wheeler |
亚洲及部分国家/地区 |
请查阅 Google Maps 官方覆盖范围文档获取详细信息。
支持任意语言的地址输入:
# 希伯来语
python3 skills/google-maps/lib/map_helper.py distance "תל אביב" "ירושלים"
python3 skills/google-maps/lib/map_helper.py geocode "דיזנגוף 50, תל אביב"
# 日语
python3 skills/google-maps/lib/map_helper.py distance "東京" "大阪"
# 阿拉伯语
python3 skills/google-maps/lib/map_helper.py distance "دبي" "أبو ظبي"
语言配置方式:
GOOGLE_MAPS_LANG=he(全局持久生效)--lang=ja# 在 OpenClaw 配置中将希伯来语设为默认语言
GOOGLE_MAPS_LANG=he
# 为单次请求指定日语
python3 skills/google-maps/lib/map_helper.py distance "Tokyo" "Osaka" --lang=ja
python3 skills/google-maps/lib/map_helper.py help