用途:为智能体提供位置智能,使用免费开放数据源完成地理编码、周边兴趣点、路线、距离与时区查询。数据源为 OpenStreetMap/Nominatim、Overpass API、OSRM、TimeAPI.io。该技能取代旧的 find-nearby,其功能由 nearby 命令覆盖。
主要能力:共 8 个命令。search 将地名或地址转为经纬度;reverse 将坐标转为地址;nearby 按类别查找周边地点,支持坐标或 --near 自动地理编码,支持多类别合并,含 46 个类别(如 restaurant、cafe、hospital、pharmacy、hotel、atm、park 等);distance 计算驾车/步行/骑行距离与时间;directions 提供逐向导航;timezone 返回时区名、UTC 偏移与当前本地时间;area 返回地点的边界框与面积;bbox 在矩形范围内搜索 POI。结果含名称、地址、经纬度、距离、maps_url、directions_url 及 cuisine、hours、phone、website 等标签。
使用方式:需 Python 3.8+,仅标准库,无需 pip 安装。脚本路径为 ~/.hermes/skills/maps/scripts/maps_client.py,可设 MAPS 变量后调用,例如 python $MAPS search "Eiffel Tower"、python $MAPS nearby 48.8584 2.2945 restaurant --limit 10、python $MAPS distance "Paris" --to "Lyon" --mode driving。处理 Telegram 位置图钉时,从消息提取 latitude 与 longitude 传给 nearby。
适用场景:用户发送位置图钉找附近咖啡馆;查询地名坐标或坐标对应地址;查询餐厅、医院、药店、酒店等;计算两地驾车/步行/骑行距离与时间;获取逐向路线;查询时区;在指定区域内搜索 POI。
限制:Nominatim 限速每秒 1 次,脚本自动处理;nearby 必须提供经纬度或 --near 地址之一;OSRM 路线覆盖以欧洲和北美最佳;Overpass 高峰时段可能较慢,脚本会在镜像间自动回退;distance 与 directions 用 --to 指定目的地;单独邮编可能结果模糊,需补充国家或州;OSM 营业时间由社区维护,可能不准确,需用 web_search 核实。