Análisis de ubicación en canales

OpenClaw normaliza las ubicaciones compartidas desde los canales de chat en:

  • texto legible añadido al cuerpo del mensaje entrante, y
  • campos estructurados en la carga del contexto de respuesta automática.

Actualmente compatible con:

  • Telegram (pines de ubicación + lugares + ubicaciones en tiempo real)
  • WhatsApp (locationMessage + liveLocationMessage)
  • Matrix (m.location con geo_uri)

Formato de texto

Las ubicaciones se muestran como líneas descriptivas sin corchetes:

  • Pin:
    • 📍 48.858844, 2.294351 ±12m
  • Lugar con nombre:
    • 📍 Torre Eiffel — Campo de Marte, París (48.858844, 2.294351 ±12m)
  • Compartir en vivo:
    • 🛰 Ubicación en vivo: 48.858844, 2.294351 ±12m

Si el canal incluye un título/comentario, se añade en la línea siguiente:

📍 48.858844, 2.294351 ±12m
Nos vemos aquí

Campos de contexto

Cuando hay una ubicación presente, se añaden estos campos a ctx:

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

Notas por canal

  • Telegram: los lugares se mapean a LocationName/LocationAddress; las ubicaciones en vivo usan live_period.
  • WhatsApp: locationMessage.comment y liveLocationMessage.caption se añaden como línea de descripción.
  • Matrix: geo_uri se interpreta como ubicación de pin; la altitud se ignora y LocationIsLive siempre es false.