تضمين خريطة منشورة
بنهاية هذا الدليل ستكون الخريطة التي أنشأتها في Kaleidr Studio معروضة على صفحتك، مع إمكانية تقييد المواقع التي تظهر عليها ومعرفة نجاح تحميلها أو فشله. تعمل الميزة في جميع الخطط بما فيها Free. تحتاج إلى حساب Kaleidr للنشر، ولا تحتاج إلى مفتاح API.
قبل البدء
- خريطة في Kaleidr Studio جاهزة للعرض العام.
- صفحة يمكنك تعديلها. يحتاج عنصر SDK إلى وسم
<script>، أما iframe العادي فيحتاج إلى HTML فقط. - إذا كان موقعك يطبّق سياسة أمان المحتوى، اسمح بالإطار
https://map-embed.kaleidr.comوبتحميل النصوص البرمجية منhttps://cdn.kaleidr.comلعنصر SDK. راجع Content Security Policy. - وسيلة لتقديم الصفحة عبر HTTP للاختبار، مثل
npx serve .داخل المجلد.
الخطوة 1: نشر الخريطة
- افتح الخريطة في Studio واختر Publish. تُفتح صفحة Publish & embed.
- تحت Project status تكون الحالة Draft. اختر Go Live.
النتيجة المتوقعة: تتحول الحالة إلى Live والزر إلى Re-publish، ويظهر Unpublish بجانبه، وقسم Embed code مع معاينة مباشرة أسفله.
تعرض الخريطة المنشورة ما هو محفوظ حاليًا في Studio، وليس نسخة من لحظة الضغط على Go Live. يحفظ Studio التعديلات أثناء العمل، لذلك تظهر كل التعديلات اللاحقة، بما فيها مجموعات البيانات المضافة، للزوار عند تحميل التضمين في المرة التالية. لا يلزم الضغط على Re-publish لذلك. يسجّل هذا الزر إصدار نشر جديدًا مع الاحتفاظ بالمعرّف والرابط ورمز التضمين نفسها؛ ويرى الزوار الخريطة نفسها قبل إعادة النشر وبعدها.
لتعديل خريطة منشورة دون إظهار العمل الجاري للزوار، اختر Unpublish أولًا ثم أعد النشر بعد الانتهاء، أو اعمل على نسخة منفصلة من الخريطة. يؤدي إلغاء النشر إلى إيقاف جميع تضمينات الخريطة حتى تعيد نشرها.
يشمل النشر بياناتك المرفوعة. تظهر مجموعات البيانات وتراكبات الصور التي أضفتها في لوحة Data كطبقات بالتنسيق الذي حددته للزوار. اقرأ البيانات المرفوعة على خريطة منشورة قبل نشر خريطة تحتوي على معلومات لا ينبغي إتاحتها للجميع.
الخطوة 2: نسخ رمز التضمين
يوفر قسم Embed code تنسيقين.
| التنسيق في Studio | ما تحصل عليه | متى تستخدمه |
|---|---|---|
| iFrame | عنصر <iframe> عادي يشير إلى الخريطة المنشورة. | عندما لا تستطيع الصفحة تشغيل نصوصك البرمجية، مثل منشئ المواقع أو CMS أو wiki، أو عندما تريد عرض الخريطة فقط. |
| Developer | أداة تحميل SDK وعنصر <kaleidr-map product="viewer">. | عندما تتح كم في الصفحة وتريد ضبط الكاميرا أو تحريكها بالكود، أو إضافة الدردشة فوق الخريطة، أو إدارة دورة حياة الخريطة في تطبيق أحادي الصفحة. |
اختر التنسيق واضغط Copy.
تنسيق iFrame:
<iframe
src="https://map-embed.kaleidr.com/embed/YOUR_MAP_ID"
width="100%"
height="480"
style="border:0;"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade"
allow="geolocation; microphone; fullscreen; clipboard-write"
title="Kaleidr map"
></iframe>
تنسيق Developer:
<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js" async></script>
<kaleidr-map product="viewer" share-id="YOUR_MAP_ID"
style="display:block;width:100%;height:480px;"></kaleidr-map>
يشير YOUR_MAP_ID إلى المعرّف الذي يضعه Studio في المقتطف. يتألف من الأحرف والأرقام والرموز ., _, ~, - بطول لا يتجاوز 100 حرف. يعمل المعرّف نفسه مع كلا التنسيقين.
يحمل التنسيقان كلاهما Kaleidr AI الخاص بالخريطة: لوحة Ask Kaleidr عندما يكون Control Tower مفعّلًا، ومحادثة AI في نوافذها المنبثقة عندما يكون Popup Window مفعّلًا. راجع Kaleidr AI على خريطة منشورة.
الخطوة 3: إضافتها إلى الصفحة وضبط أبعادها
ألصق المقتطف في الموضع الذي تريد ظهور الخريطة فيه.
النتيجة المتوقعة: يظهر مؤشر «Loading map…»، ثم الخريطة بالعرض الذي حفظته في Studio.
قواعد الأبعاد:
-
iframe عادي: عيّن
widthوheightكما تفعل مع أي iframe. -
عنصر SDK: حدد ارتفاعًا. يكون
<kaleidr-map>من نوعdisplay:blockافتراضيًا، لذا يعمل الارتفاع. وتستخدم الأمثلةstyle="display:block; height:480px"أيضًا؛ وهو آمن ويحل مشكلة Safari قبل الإصدار 16.4 حيث يبقى العنصر مضمنًا ويتجاهلheight. يمكنك كذلك ضبطهما في ملف CSS.kaleidr-map { display: block; height: 480px; } -
تملأ الخريطة عرض العنصر. إن لم يكن له ارتفاع عند التركيب، يعود إلى ارتفاع ثابت قدره 500 بكسل ويبقى كذلك حتى لو حددت ارتفاعًا لاحقًا. لا يكون للعنصر داخل تبويب مخفي أو لوحة مطوية ارتفاع؛ لذلك ركّبه عند ظهوره أو امنحه ارتفاعًا صريحًا.
-
للارتفاع المتجاوب استخدم CSS ينتج ارتفاعًا محددًا، مثل
height:60vhأوaspect-ratio:16/9أو خلية flex/grid.
الخطوة 4: ضبط الكاميرا الافتتاحية (اختياري)
تُفتح الخريطة على العرض الذي حفظه مؤلفها. يستطيع حفظ عروض مختلفة للحاسوب والجهاز اللوحي والهاتف، أو جعل الخريطة تؤطر محتواها تلقائيًا وفق عرض الإطار وتعيد التأطير عند تغيير حجمه. لفتحها في موضع مختلف مرر إعدادات الكاميرا. في center يأتي خط الطول أولًا ثم دائرة العرض.
على العنصر:
<kaleidr-map product="viewer" share-id="YOUR_MAP_ID"
center="-0.1276,51.5072" zoom="12" pitch="45" bearing="-20"
style="display:block; height:480px"></kaleidr-map>
في iframe العادي أضف إعدادات الكاميرا إلى عنوان URL بصيغة camera=longitude,latitude,zoom:
<iframe
src="https://map-embed.kaleidr.com/embed/YOUR_MAP_ID?camera=-0.1276,51.5072,12&pitch=45&bearing=-20"
width="100%" height="480" style="border:0;" loading="lazy"
referrerpolicy="no-referrer-when-downgrade" allow="geolocation; microphone; fullscreen; clipboard-write"
title="Kaleidr map"></iframe>
تتقدم الكاميرا التي تمررها على العرض الذي حفظه المؤلف، بما في ذلك إعدادات أحجام الشاشات والتأطير التلقائي. يستبدل كل حقل تمرره قيمته فقط، وتبقى الحقول المحذوفة بقيم المؤلف. بعد ضبط الكاميرا من صفحتك تتوقف إعادة التأطير التلقائية عند تغيير حجم الإطار. تذكر: يُتجاهل zoom ما لم تمرر center أيضًا. ويعمل pitch وbearing منفردين.
النتيجة المتوقعة: تُفتح الخريطة بالكاميرا التي حددتها، مع بقاء العلامات والطبقات والبيانات المرفوعة كما كانت.
لتحريك الكاميرا بعد التحميل، ركّب الخريطة عبر JavaScript واحتفظ بالمقبض:
<div id="map" style="height:480px"></div>
<button id="paris">Paris</button>
<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js"></script>
<script>
const handle = Kaleidr.mount('#map', {
product: 'viewer',
shareId: 'YOUR_MAP_ID',
});
document.getElementById('paris').addEventListener('click', () => {
// duration is in milliseconds. Leave it out to jump with no animation.
handle.setCamera({ center: [2.3522, 48.8566], zoom: 12, duration: 800 });
});
</script>
نقطتان مهمتان حول setCamera:
- توجد الدالة على المقبض الذي تعيده
Kaleidr.mount، لا على العنصر. تكونdocument.querySelector('kaleidr-map').setCameraبقيمةundefined. لتحريك خريطة مركبة كعنصر غيّر سماتcenterوzoomوpitchوbearing. تنتقل الخريطة مباشرة دون حركة انتقالية. - يمكنك استدعاؤها في أي وقت بعد عودة
Kaleidr.mount. تُخزّن الاستدعاءات السابقة لجهوزية iframe وتُطبّق بعد جهوزيته، فلا تحتاج إلى انتظارkaleidr-embed:readyالمذكورة في الخطوة 6. استخدم خيارات التركيب لتحديد العرض الابتدائي. - تتقدم الكاميرا المحددة برمجيًا على عرض المؤلف وتوقف إعادة التأطير التلقائي عند تغيير الحجم. تحتفظ الحقول غير المحددة بقيمها الحالية.