OpenClaw 位置解析指南:跨平台座標處理
處理不同通訊軟體傳來的位置訊息總是很頭痛。每個平台都有自己的格式,有的傳座標,有的傳地點名稱,甚至還有即時位置分享。如果你想在機器人裡統一處理這些數據,手寫解析器真的會讓你寫到懷疑人生。
OpenClaw 幫你解決了這個麻煩,它會自動把這些雜亂的位置資訊標準化,變成易讀的文字和結構化的 API 欄位,讓你的後端邏輯保持乾淨。
需要準備的東西
Section titled “需要準備的東西”- 已建立的 OpenClaw 專案
- 支援的 Channel (Telegram, WhatsApp 或 Matrix)
OpenClaw 會將位置資訊轉換為兩種形式:直接附加在訊息 body 的易讀文字,以及 ctx payload 中的結構化欄位。
1. 文字格式化範例
Section titled “1. 文字格式化範例”位置會以直觀的格式呈現,不會有奇怪的括號:
- 打卡點 (Pin):
📍 48.858844, 2.294351 ±12m - 具體地點 (Named place):
📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m) - 即時位置 (Live share):
🛰 Live location: 48.858844, 2.294351 ±12m
如果使用者在傳送位置時附帶了文字說明(Caption),它會顯示在下一行:
📍 48.858844, 2.294351 ±12m在這裡集合2. 使用 Context 欄位
Section titled “2. 使用 Context 欄位”當訊息包含位置時,OpenClaw 會在 ctx 中加入以下欄位供你調用:
LocationLat(number) - 緯度LocationLon(number) - 經度LocationAccuracy(number, 公尺; 選填)LocationName(string; 選填)LocationAddress(string; 選填)LocationSource(pin | place | live)LocationIsLive(boolean)
3. 不同 Channel 的處理細節
Section titled “3. 不同 Channel 的處理細節”- Telegram: 場域地點 (Venues) 會對應到
LocationName與LocationAddress;即時位置會使用其live_period屬性。 - WhatsApp:
locationMessage.comment和liveLocationMessage.caption都會被當作說明文字附加在訊息中。 - Matrix:
geo_uri會被解析為打卡點 (Pin) 位置。
- Matrix 的高度資訊不見了:這是正常的。OpenClaw 在解析 Matrix 的
geo_uri時會忽略 altitude(高度)數據。 - Matrix 的位置顯示為固定點:在 Matrix 協議中,
LocationIsLive永遠會被標記為false。
想了解更多設定細節?問問你的 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。