核心功能与用法
该技能整合了两项免费开源地图服务:
- Nominatim/OSM:将地名转换为经纬度坐标(地理编码)
- OSRM(Open Source Routing Machine):基于道路网络计算距离、预计耗时与路线
典型工作流程
1. 地名解析:当用户输入地名时,先用 geocode.sh 获取精确坐标
2. 路线计算:用 distance.sh 计算两地间距离与通行时间
3. 结果呈现:返回公里数与分钟数,支持驾驶/步行/骑行三种模式
显著优点
- 零成本:完全依赖公共服务器,无需注册或API密钥
- 开源透明:数据来自OpenStreetMap社区贡献,算法公开可审计
- 多模式覆盖:支持汽车、步行、自行车三种出行方式
- 轻量易用:仅需curl和python3,无复杂依赖
局限性与风险
| 问题 | 说明 |
|------|------|
| **无实时交通** | 耗时估算基于道路类型固定速度,早晚高峰误差大 |
| **仅限路网** | 不支持公交、地铁、轮渡等公共交通规划 |
| **速率限制** | Nominatim限1请求/秒,批量处理需限速 |
| **服务稳定性** | 公共演示服务器无SLA保障,高峰期可能响应慢 |
| **数据覆盖** | OSM在偏远地区或新建道路可能更新滞后 |
适合人群
- 需要快速估算城际/城内距离的个人用户
- 开发原型、教学演示或低频查询场景
- 对隐私敏感、不愿绑定商业地图API的用户
安全提示
- 脚本调用外部HTTP服务,注意通过HTTPS验证服务器身份
- 避免在高频自动化场景中使用,以免触发限流或被封禁
- 地理位置信息属于敏感数据,输出时注意脱敏处理