Parsing posizione nei canali

OpenClaw normalizza le posizioni condivise dai canali di chat in:

  • testo leggibile aggiunto al corpo del messaggio in ingresso, e
  • campi strutturati nel payload di contesto della risposta automatica.

Attualmente supportato:

  • Telegram (pin di posizione + luoghi + posizioni live)
  • WhatsApp (locationMessage + liveLocationMessage)
  • Matrix (m.location con geo_uri)

Formattazione del testo

Le posizioni sono rese come righe amichevoli senza parentesi:

  • Pin:
    • 📍 48.858844, 2.294351 ±12m
  • Luogo con nome:
    • 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • Condivisione live:
    • 🛰 Live location: 48.858844, 2.294351 ±12m

Se il canale include una didascalia/commento, viene aggiunto nella riga successiva:

📍 48.858844, 2.294351 ±12m
Meet here

Campi di contesto

Quando una posizione e presente, questi campi vengono aggiunti a ctx:

  • LocationLat (number)
  • LocationLon (number)
  • LocationAccuracy (number, metri; opzionale)
  • LocationName (string; opzionale)
  • LocationAddress (string; opzionale)
  • LocationSource (pin | place | live)
  • LocationIsLive (boolean)

Note sui canali

  • Telegram: i luoghi corrispondono a LocationName/LocationAddress; le posizioni live usano live_period.
  • WhatsApp: locationMessage.comment e liveLocationMessage.caption vengono aggiunti come riga didascalia.
  • Matrix: geo_uri viene interpretato come posizione pin; l’altitudine viene ignorata e LocationIsLive e sempre false.