跳到內容

OpenClaw 位置解析指南:跨平台座標處理

處理不同通訊軟體傳來的位置訊息總是很頭痛。每個平台都有自己的格式,有的傳座標,有的傳地點名稱,甚至還有即時位置分享。如果你想在機器人裡統一處理這些數據,手寫解析器真的會讓你寫到懷疑人生。

OpenClaw 幫你解決了這個麻煩,它會自動把這些雜亂的位置資訊標準化,變成易讀的文字和結構化的 API 欄位,讓你的後端邏輯保持乾淨。

  • 已建立的 OpenClaw 專案
  • 支援的 Channel (Telegram, WhatsApp 或 Matrix)

OpenClaw 會將位置資訊轉換為兩種形式:直接附加在訊息 body 的易讀文字,以及 ctx payload 中的結構化欄位。

位置會以直觀的格式呈現,不會有奇怪的括號:

  • 打卡點 (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
在這裡集合

當訊息包含位置時,OpenClaw 會在 ctx 中加入以下欄位供你調用:

  • LocationLat (number) - 緯度
  • LocationLon (number) - 經度
  • LocationAccuracy (number, 公尺; 選填)
  • LocationName (string; 選填)
  • LocationAddress (string; 選填)
  • LocationSource (pin | place | live)
  • LocationIsLive (boolean)
  • 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

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。