- 附加到入站正文末尾的简洁坐标文本,以及
- 自动回复上下文负载中的结构化字段。频道提供的标签、地址以及标题/评论会通过共享的未受信任元数据 JSON 块渲染到提示中,而不是以内联方式出现在用户正文里。
- LINE(带标题/地址的位置消息)
- Matrix(
m.location,带geo_uri) - Telegram(位置图钉 + 场所 + 实时位置)
- WhatsApp(
locationMessage+liveLocationMessage)
文本格式
位置会以友好的行形式显示,不带括号。坐标使用六位小数;精度四舍五入到整米:- 标记:
📍 48.858844, 2.294351 ±12m
- 名称地点(同一行;名称/地址仅进入元数据块):
📍 48.858844, 2.294351 ±12m
- 实时共享:
🛰 实时位置:48.858844, 2.294351 ±12m
上下文字段
当存在位置时,以下字段会添加到ctx:
LocationLat(number)LocationLon(number)LocationAccuracy(number,米;可选)LocationName(string;可选)LocationAddress(string;可选)LocationSource(pin | place | live)LocationIsLive(boolean)LocationCaption(string;可选)
live,带有名称或地址的位置变为 place,其余情况均为 pin。
提示渲染器将 LocationName、LocationAddress 和 LocationCaption 视为不受信任的元数据,并通过与其他频道上下文相同的受限 JSON 路径对它们进行序列化。
外发负载
消息工具和 Plugin SDK 对可移植的外发位置使用相同的NormalizedLocation 结构。仅包含坐标的负载表示一个图钉。支持原生场所的渠道可以将 name 加上 address 映射为场所卡片。
Telegram 目前通过 message(action="send") 暴露此功能。其首个实现是刻意独立的:位置负载不能与文本或媒体混用,不完整的场所配对会失败,而不是静默丢弃名称或地址。不支持的渠道不会公开 location 参数。
频道说明
- LINE:位置消息的
title/address映射到LocationName/LocationAddress;不支持实时位置。 - Matrix:
geo_uri解析为固定位置;u(不确定性)参数映射到LocationAccuracy,事件正文填充LocationCaption,海拔被忽略,且LocationIsLive始终为 false。 - Telegram:地点信息映射到
LocationName/LocationAddress;通过live_period检测实时位置。 - WhatsApp:
locationMessage.comment和liveLocationMessage.caption填充LocationCaption。