← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

周边去哪儿:高德步行地点推荐

给出城市、起点和一句话需求,用高德地点搜索和步行路线规划推荐最多 3 个步行可达的地点,附距离、时间和推荐理由。

person作者: HuoyuuuhubOpenAPI

周边去哪儿:高德地点推荐

什么时候用

用户想在当前位置附近找一个去处,例如「我在杭州龙翔桥地铁站,想找咖啡馆,步行不超过 15 分钟,推荐最多 3 家,优先近一点的」。 每个推荐都是从同一起点出发的独立选项,不排成多站行程。

第 1 步:读出需求

从用户的话里取出下面几项,没说的用默认值:

| 项 | 默认值 | | --- | --- | | 城市 | 用户给的城市 | | 起点坐标 | 用户给了坐标就直接用(经度,纬度);只给地名就先调 maps_geo(带上城市)换成坐标 | | 地点类型关键词 | 必填,如「咖啡馆」「公园」「火锅」 | | 步行时间上限 | 没说就不设上限,但搜索半径仍取 1500 米 | | 推荐数量 N | 没说取 3,最多 3 | | 排序偏好 | 没说按步行时间从短到长 |

步行速度按每分钟约 80 米估搜索半径:半径 = 上限分钟 × 80,最少 500 米,最多 3000 米。这个半径只用来搜候选,不能用来判断是否满足时间要求。

第 2 步:搜候选地点

调 maps_around_search:

  • location:起点坐标
  • keywords:地点类型关键词
  • radius:上一步算出的半径

结果为空时,换一个更常见的同义词再搜一次(如「咖啡馆」→「咖啡」),仍为空就进入第 5 步的「没有结果」。 保留前 8 个候选,记下每个的名称、地址、坐标、类型。类型明显不符合需求的(比如搜咖啡馆搜出了写字楼)直接去掉。

第 3 步:逐个查步行路线

对每个候选调 maps_direction_walking:

  • origin:起点坐标
  • destination:候选坐标

记下返回的步行距离(米)和耗时(秒,换算成分钟,向上取整)。

  • 步行时间只能来自这一步的路线结果,不能用直线距离推算。
  • 某个候选路线查询失败,就跳过它,不要自己估。

第 4 步:筛选和排序

  1. 去掉步行时间超过上限的候选。
  2. 按用户偏好排序;用户说「优先近一点」或没说时,按步行时间从短到长,时间相同按距离。
  3. 取前 N 个。

第 5 步:回答

用表格回答,每行一个地点:

| # | 名称 | 地址 | 步行距离 | 步行时间 | 推荐理由 | | --- | --- | --- | --- | --- | --- | | 1 | 名称(照抄高德返回) | 地址(照抄高德返回) | 420 米 | 约 6 分钟 | 一句话,只用查到的数据,如「三家里最近」「评分 4.6,步行 6 分钟」 |

表格后按需补一两句说明:

  • 结果不足 N 个:写明「起点 X 米范围内步行 Y 分钟内只找到 K 家」,建议放宽时间或换关键词。
  • 没有结果:直接说没找到,不编地点,建议放宽条件。
  • 工具调用失败:说明是哪一步查询失败,不拿猜测补上。
  • 未核实的信息:安静程度、是否排队、是否营业中这类高德没返回的内容,写成「未核实」,不要断言。

硬性规则

  • 名称、地址、距离、时间都必须来自本次高德工具返回,不得编造或改写数字。
  • 超过时间上限的地点不出现在推荐表里。
  • 推荐数量不超过用户要求,也不超过 3。
  • 不在回答里写 API Key 或任何密钥。
<!-- OB-S:EjmFg09XVEFm6LTcJPX42w -->