工具:compute_routes
计算指定出发地和目的地之间的出行路线。支持的出行方式:DRIVE(默认)、WALK。
输入要求(关键):需要同时提供出发地和目的地。必须使用以下方法之一在相应字段中嵌套提供每个值:
address:(字符串,例如“埃菲尔铁塔,巴黎”)。注意:输入的地址越精细或越具体,结果就越好。
lat_lng:(对象,{"latitude": number, "longitude": number})
place_id::(字符串,例如“ChIJOwE_Id1w5EAR4Q27FkL6T_0”)注意:此 ID 可通过 search_places 工具获取。允许使用任何输入类型组合(例如,按地址指定出发地,按 lat_lng 指定目的地)。如果缺少出发地或目的地,您必须先询问用户以明确信息,然后再尝试调用该工具。
工具调用示例:{"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}
- 如果
attribution字段中包含信息,则必须使用该信息将基于事实的输出归因于来源。
以下代码示例展示了如何使用 curl 调用 compute_routes MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "compute_routes", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
ComputeRoutesRequest。
ComputeRoutesRequest
| JSON 表示法 |
|---|
{ "origin": { object ( |
| 字段 | |
|---|---|
origin |
必需。出发地航点。 |
destination |
必需。目的地航点。 |
travelMode |
可选。指定交通方式。 |
航点
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 location_type。表示位置的不同方式。location_type 只能是下列其中一项: |
|
latLng |
使用地理坐标指定的点。 |
placeId |
与途经点相关联的地点 ID。 |
address |
人类可读的地址或 Plus Code。如需了解详情,请参阅 https://plus.codes。 |
LatLng
| JSON 表示法 |
|---|
{ "latitude": number, "longitude": number } |
| 字段 | |
|---|---|
latitude |
纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。 |
longitude |
经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。 |
RouteTravelMode
用于指定出行方式的一组值。
| 枚举 | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
未指定出行方式。默认为 DRIVE。 |
DRIVE |
乘坐客车出行。 |
WALK |
步行出行。注意:WALK 路线目前处于 Beta 版阶段,有时可能没有明确的人行道或步道。您必须向用户显示此警告,以告知用户您在应用中显示的所有步行数据。 |
输出架构
ComputeRoutesResponse。
ComputeRoutesResponse
| JSON 表示法 |
|---|
{
"routes": [
{
object ( |
| 字段 | |
|---|---|
routes[] |
包含所请求的出发地和目的地之间的路线。目前仅返回一条路线。 |
路由
| JSON 表示法 |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| 字段 | |
|---|---|
distanceMeters |
路线的行驶距离(以米为单位)。 |
duration |
导航路线所需的时间长度。 该时长以秒为单位,最多包含九个小数位,以“ |
attribution |
与路线一起显示的必需提供方信息。 |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
归因
| JSON 表示法 |
|---|
{ "title": string, "url": string } |
| 字段 | |
|---|---|
title |
要为提供方信息显示的标题。 |
url |
提供方信息的链接网址。 |
工具注释
工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界,而内存工具不是开放世界。
破坏性提示:❌ | 等幂性提示:❌ | 只读提示:✅ | 开放世界提示:❌