---
read_when:
    - إضافة تحليل موقع القناة أو تعديله
    - استخدام حقول سياق الموقع في مطالبات الوكيل أو أدواته
summary: تحليل المواقع في القنوات وحمولات المواقع المحمولة الصادرة
title: تحليل موقع القناة
x-i18n:
    generated_at: "2026-07-16T13:20:42Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: c7e5647d02643ad6d95024b362228377690d7fdff66441fae367f0f5307217fb
    source_path: channels/location.md
    workflow: 16
---

يطبّع OpenClaw المواقع المشتركة من قنوات الدردشة إلى:

- نص إحداثيات موجز يُلحق بنص الرسالة الواردة، و
- حقول منظّمة في حمولة سياق الرد التلقائي. تُعرض التسميات والعناوين والتعليقات التوضيحية/التعليقات التي توفرها القناة في الموجّه عبر كتلة JSON المشتركة للبيانات الوصفية غير الموثوق بها، وليس مضمنةً في نص المستخدم.

المدعوم حاليًا:

- **LINE** (رسائل الموقع التي تتضمن عنوانًا/اسمًا)
- **Matrix** (`m.location` مع `geo_uri`)
- **Telegram** (دبابيس المواقع + الأماكن + المواقع المباشرة)
- **WhatsApp** (`locationMessage` + `liveLocationMessage`)

## تنسيق النص

تُعرض المواقع في أسطر سهلة القراءة من دون أقواس. تستخدم الإحداثيات ست منازل عشرية؛ وتُقرّب الدقة إلى أمتار صحيحة:

- دبوس:
  - `📍 48.858844, 2.294351 ±12m`
- مكان مسمّى (في السطر نفسه؛ لا يُدرج الاسم/العنوان إلا في كتلة البيانات الوصفية):
  - `📍 48.858844, 2.294351 ±12m`
- مشاركة مباشرة:
  - `🛰 Live location: 48.858844, 2.294351 ±12m`

إذا تضمنت القناة تسمية أو عنوانًا أو تعليقًا توضيحيًا/تعليقًا، فسيُحتفظ به في حمولة السياق وسيظهر في الموجّه بصفته JSON غير موثوق به داخل سياج (تُحذف الحقول عند غيابها):

````text
الموقع (بيانات وصفية غير موثوق بها):
```json
{
  "latitude": 48.858844,
  "longitude": 2.294351,
  "accuracy_m": 12,
  "source": "place",
  "name": "برج إيفل",
  "address": "شان دو مارس، باريس",
  "caption": "لنلتقِ هنا"
}
```
````

## حقول السياق

عند وجود موقع، تُضاف هذه الحقول إلى `ctx`:

- `LocationLat` (رقم)
- `LocationLon` (رقم)
- `LocationAccuracy` (رقم، بالأمتار؛ اختياري)
- `LocationName` (سلسلة نصية؛ اختياري)
- `LocationAddress` (سلسلة نصية؛ اختياري)
- `LocationSource` (`pin | place | live`)
- `LocationIsLive` (قيمة منطقية)
- `LocationCaption` (سلسلة نصية؛ اختياري)

عندما لا تعيّن القناة مصدرًا صريحًا، يستنتجه OpenClaw: تصبح المشاركات المباشرة `live`، وتصبح المواقع التي لها اسم أو عنوان `place`، وكل ما عدا ذلك يكون `pin`.

يتعامل عارض الموجّه مع `LocationName` و`LocationAddress` و`LocationCaption` بوصفها بيانات وصفية غير موثوق بها، ويسلسلها عبر مسار JSON المحدود نفسه المستخدم لسياقات القنوات الأخرى.

## الحمولات الصادرة

تستخدم أداة الرسائل وSDK الخاص بالـ Plugin بنية `NormalizedLocation` نفسها للمواقع الصادرة القابلة للنقل. تمثل الحمولة التي لا تحتوي إلا على الإحداثيات دبوسًا. وقد تربط القنوات التي تدعم الأماكن أصليًا `name` مع `address` ببطاقة مكان.

يوفّر Telegram هذا حاليًا عبر `message(action="send")`. صُمم تنفيذه الأول عمدًا ليكون مستقلًا: لا يمكن مزج حمولات الموقع مع النصوص أو الوسائط، وتفشل أزواج بيانات المكان غير المكتملة بدلًا من إسقاط الاسم أو العنوان بصمت. ولا تعلن القنوات غير المدعومة عن معلَمة الموقع.

## ملاحظات القنوات

- **LINE**: يُربط `title`/`address` في رسالة الموقع بـ `LocationName`/`LocationAddress`؛ ولا توجد مواقع مباشرة.
- **Matrix**: يُحلّل `geo_uri` بوصفه موقع دبوس؛ وتُربط معلَمة `u` (عدم اليقين) بـ `LocationAccuracy`، ويملأ نص الحدث `LocationCaption`، ويُتجاهل الارتفاع، وتكون `LocationIsLive` دائمًا false.
- **Telegram**: تُربط الأماكن بـ `LocationName`/`LocationAddress`؛ وتُكتشف المواقع المباشرة عبر `live_period`.
- **WhatsApp**: يملأ `locationMessage.comment` و`liveLocationMessage.caption` الحقل `LocationCaption`.

## ذو صلة

- [أمر الموقع (العُقد)](/ar/nodes/location-command)
- [التقاط الكاميرا](/ar/nodes/camera)
- [فهم الوسائط](/ar/nodes/media-understanding)
