تتيح خريطة البلدان التي زرتها للمسافر اختيار البلدان على خريطة العالم، ووضع علامة عليها باعتبارها مُزارة أو مخططًا لزيارتها، وحفظ هذه الحالة والعودة إليها لاحقًا. وعلى خلاف خريطة السفر التي تستخدم دبابيس المدن، فإن الشكل الهندسي الأساسي هنا هو حدود البلد: كل بلد عبارة عن مضلع أو مضلع متعدد مرتبط بمعرّف ثابت وحالة يحددها المستخدم. ويتطلب التنفيذ المتين أيضًا تحديد ما يُعد بلدًا، وتوثيق مصدر الحدود، وإبقاء البلدان الصغيرة قابلة للاختيار، وفصل بيانات السفر عن تنسيق الخريطة.
تتناول الأقسام التالية بنية البيانات ومعرّفات البلدان وسياسة الحدود والعرض باستخدام MapLibre والاستمرارية وإمكانية الوصول والخصوصية وتسليم العمل إلى Studio والأخطاء الشائعة. تجد سياق المنتج ذا الصلة في Kaleidr Studio. ولخرائط الأماكن القائمة على الدبابيس، راجع كيفية إنشاء خريطة سفر عالمية باستخدام الدبابيس. ولرسم عدد كبير من الأماكن، راجع رسم الأماكن على خريطة.
أساسيات خريطة البلدان المُزارة
- مضلعات لا دبابيس: تتبع البلدان يعتمد على الحدود، أما ذكريات المدن فتعتمد على النقاط.
- مجموعات بيانات منفصلة: ترتبط الأشكال الهندسية المشتركة بحالة السفر الشخصية عبر معرّف ثابت.
- العدّ سياسة: مقام البلدان المؤهلة قاعدة منتج، وليس مجرد عدد المعالم.
- الحالة قبل التنسيق: خزّن
visitedوwant_to_visitثم اختر الألوان.- تسليم مدروس: يمكن لأداة تتبع خفيفة أن تقود إلى خرائط أغنى في Studio من دون المبالغة في وصف الميزات.

ما خريطة البلدان التي زرتها التفاعلية؟
هي خريطة عالم تتصرف فيها البلدان كعناصر جغرافية تفاعلية بدل أن تكون خلفية ثابتة. عادةً ما يختار المستخدم بلدًا، ويضع عليه علامة «تمت زيارته» أو يضيفه إلى قائمة الأمنيات، ويبحث بالاسم، ويرى عددًا أو نسبة مئوية متجددة، ويحفظ التقدم ويشارك ملخصًا عامًا. ويتكون النموذج الأساسي من الشكل الهندسي للبلد ومعرّف بلد ثابت وحالة سفر المستخدم. وتؤثر قرارات المنتج المحيطة بهذا النموذج: فالحدود حساسة سياسيًا، والإجماليات تتوقف على سياسة العدّ، وقد يكون سجل السفر المستقبلي التفصيلي خاصًا.
| التجربة | الشكل الهندسي الأساسي | الأنسب لـ |
|---|---|---|
| خريطة البلدان المُزارة | مضلعات البلدان | تتبع البلدان، والتقدم العالمي، وقوائم الأمنيات |
| خريطة سفر بالدبابيس | نقاط | المدن والمعالم والفنادق والمطاعم والذكريات |
| خريطة مسارات | خطوط + نقاط | الرحلات البرية وخطط الرحلات والأسفار |
| خريطة يوميات السفر | نقاط + محتوى | الملاحظات والصور والتواريخ والقصص |
يجيب متتبع البلدان عن البلدان التي زارها المسافر، بينما تجيب خريطة الدبابيس عن الأماكن المحددة التي زارها. ويمكن لمنتج سفر جيد دعم الاثنين من دون جمعهما قسرًا في خريطة واحدة مثقلة.
كيف ينبغي تخزين أشكال البلدان وحالة السفر؟
تفصل البنية الأنظف بيانات المرجع الجغرافي عن حالة السفر الشخصية. تحتفظ بيانات الحدود بالمعرّفات الثابتة وأسماء العرض وأشكال المضلع أو المضلع المتعدد والمنطقة أو القارة الاختيارية وإصدار مجموعة البيانات والأهلية وفق سياسة العدّ الخاصة بالمنتج. أما حالة سفر المستخدم فلا تحتفظ إلا بالقيم التي يملكها المسافر، مثل JP: visited أو IS: want_to_visit. قد يتغير تصميم الخريطة، لكن سجل السفر ينبغي ألا يتغير. لا ترمّز حالة العمل باللون وحده؛ خزّن الحالة الدلالية أولًا، ثم دع العارض يقرر إن كان العرض بنفسجيًا أو فيروزيًا أو منقوشًا أو محددًا بخط.
أسماء البلدان مفاتيح ضعيفة لقواعد البيانات لأن اللغة والاختصارات وعلامات الترقيم وأعراف التسمية والتغييرات الرسمية والنقل الصوتي كلها تختلف. ويُستخدم ISO 3166 على نطاق واسع لرموز البلدان القياسية، وتتولى وكالة صيانة ISO 3166 إدارة مجموعة الرموز المخصصة (ISO 3166). وثّق المعرّف المعتمد—سواء كان ISO alpha-2 أو alpha-3 أو معرّف معلم من مزود الحدود—وحافظ على الربط بين المعالم الجغرافية وحالة المستخدم.
يدعم GeoJSON شكلي Polygon وMultiPolygon، ويعرّف RFC 7946 بنيتهما ويستخدم ترتيب الإحداثيات الذي يبدأ بخط الطول (RFC 7946). تحتاج بلدان كثيرة إلى شكل MultiPolygon لأن إقليمها يضم جزرًا منفصلة أو مناطق أخرى غير متصلة. ولمزيد من التفاصيل عن ترتيب الإحداثيات، راجع البحث عن موقع باستخدام خط العرض وخط الطول.

كيف تعمل مجموعات بيانات الحدود وأعداد البلدان؟
يحتاج متتبع البلدان المُزارة إلى مصدر مُصان لهندسة البلدان. تنشر Natural Earth بيانات خرائط ضمن الملكية العامة بمقاييس 1:10m و1:50m و1:110m، ومنها مجموعات بيانات البلدان Admin 0، وتميز وثائقها بين البلدان والسيادة والوحدات الخرائطية والوحدات الفرعية والمناطق المتنازع عليها والبدائل الاختيارية لوجهة النظر الجغرافية (Admin 0 — Countries). ملف الحدود ليس تعريفًا عالميًا لكل بلد. ويمكن لقائمة الدول الأعضاء في الأمم المتحدة أن تكون مجموعة مرجعية محتملة، لكن منتج السفر قد يعامل الدول المراقبة أو الأقاليم أو التبعيات أو البلدان المكوِّنة أو الكيانات المتنازع عليها بصورة مختلفة (UN Member States). لا تعتبر عدد معالم GeoJSON بصمت عدد بلدان العالم. اجعل الأهلية صريحة لكل معلم، وأصدر نسخًا من سياسة العدّ حتى تظل نسب التقدم قابلة للتفسير.
قد تعكس الحدود الوطنية نزاعات سياسية ووجهات نظر جغرافية مختلفة. ولا ينبغي لخريطة سفر موجهة للمستهلك أن توحي بأن واجهتها تحسم تلك النزاعات. وثّق مصدر الحدود وإصدار مجموعة البيانات وإصدار سياسة العدّ وكيفية التعامل مع الأقاليم، وأضف إخلاء مسؤولية محايدًا، مثل أن الحدود وأعداد البلدان تتبع مجموعة البيانات الجغرافية وسياسة العدّ المستخدمتين في هذه الخريطة. لا تنشئ الحدود الوطنية بنموذج صور أو نموذج لغوي؛ استخدم بيانات جغرافية مكانية مُصانة.

كيف تعرض اختيار البلدان وتحدّثه؟
يحمّل متتبع بسيط GeoJSON للبلدان في مصدر خريطة، ويرسم طبقة تعبئة، ويتعامل مع الاختيار، ويحدّث مخزن حالة المستخدم، ويعيد تنسيق المعالم، ثم يحدّث التقدم وقائمة البلدان. يستطيع MapLibre GL JS عرض معالم مضلعات GeoJSON بطبقة fill (إضافة مضلع GeoJSON). أعط الأولوية لتغييرات حالة التطبيق: بدّل الحالة، وثبّت حالة السفر، وحدّث تنسيق المعلم المتأثر، ثم أعد حساب الإحصاءات؛ وتجنب إعادة بناء مجموعة بيانات البلدان كاملة بعد كل نقرة. وادعم أكثر من حالة ثنائية عند الحاجة: «تمت الزيارة» و«أرغب في الزيارة» و«لم تتم الزيارة» تغطي معظم أغراض التتبع.
import maplibregl from "maplibre-gl";
const visited = new Set(["JPN", "FRA", "CAN"]);
const map = new maplibregl.Map({
container: "map",
style: "https://demotiles.maplibre.org/style.json",
center: [10, 20],
zoom: 1.2
});
map.on("load", async () => {
const countries = await (await fetch("/data/countries.geojson")).json();
countries.features = countries.features.map((feature) => ({
...feature,
properties: {
...feature.properties,
visit_status: visited.has(feature.properties.iso_a3)
? "visited"
: "not_visited"
}
}));
map.addSource("countries", { type: "geojson", data: countries });
map.addLayer({
id: "countries-fill",
type: "fill",
source: "countries",
paint: {
"fill-color": [
"match",
["get", "visit_status"],
"visited", "#6f5bd3",
"want_to_visit", "#72c4c9",
"#d8d8d8"
],
"fill-opacity": 0.65
}
});
});
تحقق من مخطط الخصائص الفعلي لمجموعة البيانات المختارة قبل التنفيذ. واستخدم ألوانًا يسهل الوصول إليها من نظام التصميم لديك بدل القيم التوضيحية أعلاه.
كيف ينبغي أن تعمل الاستمرارية وإمكانية الوصول والخصوصية؟
يمكن للتجارب المجهولة إبقاء الاختيارات في حالة التطبيق المحلية وفي مساحة تخزين المتصفح على الجهاز نفسه. أما تجارب المستخدمين المسجلين فتزامن ملف سفر خلفيًا مصرحًا به بين الأجهزة. يعرض عارض الخريطة الحالة، ولا ينبغي أن يتحول إلى نظام الهوية أو الاستمرارية. خزّن إصدار بيانات سياسة الجغرافيا الوصفية إلى جانب الملفات المحفوظة حتى لا تعيد تحديثات مجموعة البيانات لاحقًا كتابة التقدم التاريخي بصمت.
أضف قائمة بلدان قابلة للبحث ومتزامنة مع الخريطة كي تظل البلدان الصغيرة قابلة للاختيار على الهاتف. وفّر عناصر تحكم تعمل بلوحة المفاتيح وتركيزًا مرئيًا وحالة لا يُعبَّر عنها باللون وحده. فضّل لقطات مشاركة إجمالية—عدد البلدان المُزارة ومجموعات البلدان العامة—على تصدير تواريخ الرحلات الدقيقة أو الفنادق أو المسارات أو الموقع الحالي أو الخطط المستقبلية افتراضيًا. تعامل مع قائمة الأمنيات والسفر المخطط له بوصفهما معلومات حساسة، ولا تنشر الوجهات المستقبلية ما لم يختر المستخدم مشاركتها صراحةً.
يمكن للذكاء الاصطناعي المساعدة في تنظيم الفئات أو اقتراح طبقات مدن أكثر كثافة بعد اختيار البلد أو تحسين تنسيق الخريطة، لكن اختيارات المستخدم تبقى سجل السفر المعتمد. لا تخترع بلدانًا مُزارة اعتمادًا على معرفة النموذج.
ما دور Kaleidr Studio؟
يمكن لمتتبع خفيف تلبية نية البحث أولًا، ثم نقل المستخدمين إلى إنشاء خرائط أغنى. يدعم Kaleidr Studio حاليًا إنشاء خرائط تفاعلية مخصصة انطلاقًا من وصف نصي، مع خرائط قائمة على البيانات ومناطق ذات سمات ودبابيس وطبقات وتنسيق بصري ونشر وتضمين. ولا توثق صفحة Studio العامة حاليًا متتبعًا مخصصًا للبلدان المُزارة باستمرارية تلقائية لحالة كل مستخدم، أو عدّاد بلدان مدمجًا، أو وضعًا محددًا للتبديل بين «تمت الزيارة» و«قائمة الأمنيات»؛ لذلك لا ينبغي وصف هذه الإمكانات بأنها ميزات حالية في Studio إلا بعد تنفيذها وتوثيقها. مسار المنتج الموصى به هو: متتبع تفاعلي للبلدان ← حفظ أو مشاركة ← تحويله إلى خريطة سفر أغنى ← تحسينه ونشره في Studio. استخدم هندسة عالم معممة لتحسين الأداء، وأبقِ حمولات حالة المستخدم صغيرة، ولا تحمّل تفاصيل المدن أو الأماكن إلا عند طلب المستخدم.
![]()
ما الأخطاء التي ينبغي للفرق تجنبها؟
| الخطأ | ما الذي يحدث | النهج الأفضل |
|---|---|---|
| استخدام أسماء البلدان كمفتاح أساسي | التوطين يفسد الحالة | استخدم معرّفات ثابتة |
| اعتبار لون التعبئة بيانات السفر | تغييرات السمة تفسد المنطق | خزّن الحالة الدلالية منفصلة |
| عدّ معالم GeoJSON كبلدان | الأقاليم تشوه الإجماليات | عرّف سياسة أهلية |
| ترميز إجمالي عالمي ثابت للبلدان | تصبح الافتراضات غير مرئية | انشر سياسة العدّ |
| تجاهل وجهة نظر الحدود | تبدو الخريطة حاسمة سياسيًا | وثّق المصدر والسياسة |
| استخدام الدبابيس بدل مضلعات البلدان | لا تتحقق نية المستخدم على مستوى البلد | اجعل مساحات البلدان تفاعلية |
| جعل الدول الصغيرة مستحيلة الاختيار | تتضرر تجربة الهاتف وإمكانية الوصول | أضف البحث وقائمة متزامنة |
| اشتراط التسجيل قبل النقرة الأولى | يزداد الاحتكاك في الاكتساب | اسمح بالحالة المحلية أولًا عند الملاءمة |
| مشاركة سجل السفر الدقيق افتراضيًا | تزداد مخاطر الخصوصية | شارك الحالة الإجمالية المقصودة فقط |
| اعتبار الذكاء الاصطناعي حقيقة سجل السفر | قد تُختلق حالة المستخدم | أبقِ اختيارات المستخدم هي المرجع |
الحكم النهائي
تبدو خريطة البلدان التي زرتها التفاعلية بسيطة تقنيًا فقط إذا تجاهل المنتج القرارات التي تجعلها موثوقة. يتكون التنفيذ الأساسي من حدود البلدان والمعرّفات الثابتة وحالة سفر المستخدم وطبقة تعبئة تفاعلية والتقدم المحفوظ. أما الأسئلة الأصعب فهي أسئلة منتج: ما الذي يُعد بلدًا، وأي مجموعة حدود تتبعها الخريطة، وكيف تُعامل الأقاليم والمناطق المتنازع عليها، وهل تستمر حالة السفر بين الأجهزة، وما الذي يُشارك علنًا، وهل يمكن لخريطة على مستوى البلدان أن تتطور إلى خريطة سفر أغنى على مستوى الأماكن. تبدأ أفضل تجربة للمسافر بالمهمة التي بحث عنها: ينقر البلدان فيرى الخريطة تتحدث فورًا. ويمكن أن يأتي إنشاء الخرائط الأغنى لاحقًا عبر Kaleidr Studio عندما يريد المستخدم أماكن ومناطق وطبقات وتنسيقًا ونشرًا يتجاوز تقدم البلدان.
أنشئ خريطة سفر أغنى باستخدام Kaleidr Studio
حوّل البلدان والمدن والأماكن وأفكار السفر إلى خريطة تفاعلية قابلة للتخصيص. ابدأ الإنشاء في Kaleidr Studio عندما تصبح مستعدًا للانتقال من اختيار البلدان إلى خرائط سفر أكثر ثراءً من تأليفك.
الأسئلة الشائعة
ما خريطة البلدان التي زرتها التفاعلية؟
هي خريطة عالم تتيح للمستخدم اختيار البلدان وحفظ حالة سفر كل بلد، عادةً بصيغة «تمت الزيارة» أو «أرغب في الزيارة» أو «لم تتم الزيارة».
كيف تختلف خريطة البلدان المُزارة عن خريطة سفر بالدبابيس؟
تبرز خريطة البلدان المُزارة الحدود الوطنية، بينما تحدد خريطة الدبابيس مدنًا ومعالم وفنادق ومطاعم أو أماكن أخرى بعينها.
ما بيانات الخريطة التي أحتاج إليها؟
تحتاج إلى هندسة حدود البلدان—عادةً معالم Polygon أو MultiPolygon—إضافة إلى معرّفات بلدان ثابتة وسجل منفصل لحالة سفر المستخدم.
هل يمكنني استخدام GeoJSON لحدود البلدان؟
نعم. يدعم GeoJSON هندسة Polygon وMultiPolygon ويُستخدم على نطاق واسع في خرائط الويب.
أي رمز بلد ينبغي تخزينه؟
يُعد رمزا ISO 3166 alpha-2 أو alpha-3 خيارين شائعين. استخدم المعرّفات الثابتة باتساق، ووثّق كيفية ربطها بمجموعة بيانات الحدود المختارة.
كم بلدًا ينبغي لخريطة البلدان المُزارة أن تعد؟
لا يوجد مقام واحد يجب أن تستخدمه جميع منتجات السفر. حدد ما إذا كان المتتبع يعد مجموعة مرجعية بعينها فقط، أو يشمل الدول المراقبة أيضًا، أو يضم الأقاليم، أو يطبق سياسة أخرى موثقة.
لماذا تعرض تطبيقات البلدان المُزارة إجماليات مختلفة أحيانًا؟
قد تستخدم تعريفات مختلفة للبلد، أو مجموعات بيانات حدود مختلفة، أو معاملة مختلفة للأقاليم والمناطق المتنازع عليها.
كيف ينبغي التعامل مع الحدود المتنازع عليها؟
استخدم مجموعة بيانات جغرافية مُصانة، ووثّق وجهة نظرها أو سياسة حدودها، وتجنب الإيحاء بأن تطبيق السفر يحسم النزاعات السياسية.
هل يمكن أن تعمل الخريطة من دون حساب؟
نعم. يمكن لمساحة التخزين المحلية في المتصفح حفظ الاختيارات على الجهاز نفسه. ويصبح الحساب مفيدًا للمزامنة بين الأجهزة أو النسخ الاحتياطي أو المشاركة الدائمة.
هل يستطيع Kaleidr Studio إنشاء خرائط سفر؟
نعم. يدعم Kaleidr Studio حاليًا إنشاء خرائط تفاعلية مخصصة انطلاقًا من وصف نصي، مع مناطق ذات سمات ودبابيس وطبقات وتنسيق بصري ونشر وتضمين. ولا توثق صفحة Studio العامة حاليًا عدّادًا مخصصًا للبلدان المُزارة لكل مستخدم أو متتبع تبديل لحالة البلد.
المراجع
- المنظمة الدولية للمعايير. ISO 3166 — رموز البلدان. تم الاطلاع في 16 أغسطس 2026. https://www.iso.org/iso-3166-country-codes.html
- فريق عمل هندسة الإنترنت. RFC 7946: تنسيق GeoJSON. 2016. https://datatracker.ietf.org/doc/html/rfc7946
- Kaleidr. إنشاء خرائط مخصصة باستخدام صانع خرائط بالذكاء الاصطناعي. تم الاطلاع في 16 أغسطس 2026. https://kaleidr.com/studio
- Kaleidr. البناء باستخدام Kaleidr. وثائق المطورين. تم الاطلاع في 16 أغسطس 2026. https://docs.kaleidr.com/
- MapLibre. إضافة مضلع GeoJSON. وثائق MapLibre GL JS. تم الاطلاع في 16 أغسطس 2026. https://maplibre.org/maplibre-gl-js/docs/examples/add-a-geojson-polygon/
- Natural Earth. Admin 0 — البلدان. الإصدار 5.1.1. تم الاطلاع في 16 أغسطس 2026. https://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-admin-0-countries/
- الأمم المتحدة. الدول الأعضاء. تم الاطلاع في 16 أغسطس 2026. https://www.un.org/en/about-us/member-states
@misc{iso_3166_country_codes,
title = {ISO 3166 -- Country Codes},
author = {{International Organization for Standardization}},
note = {Accessed 16 August 2026},
url = {https://www.iso.org/iso-3166-country-codes.html}
}
@misc{rfc7946,
title = {RFC 7946: The GeoJSON Format},
author = {Butler, Howard and Daly, Martin and Doyle, Allan and Gillies, Sean and Hagen, Stefan and Schaub, Tim},
year = {2016},
publisher = {Internet Engineering Task Force},
url = {https://datatracker.ietf.org/doc/html/rfc7946}
}
@misc{natural_earth_admin0,
title = {Admin 0 -- Countries},
author = {{Natural Earth}},
note = {Version 5.1.1; accessed 16 August 2026},
url = {https://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-admin-0-countries/}
}
@misc{un_member_states,
title = {Member States},
author = {{United Nations}},
note = {Accessed 16 August 2026},
url = {https://www.un.org/en/about-us/member-states}
}
@misc{maplibre_geojson_polygon,
title = {Add a GeoJSON Polygon},
author = {{MapLibre}},
note = {MapLibre GL JS documentation; accessed 16 August 2026},
url = {https://maplibre.org/maplibre-gl-js/docs/examples/add-a-geojson-polygon/}
}
@misc{kaleidr_studio_2026_08_16,
title = {Create Custom Maps with AI Map Maker},
author = {{Kaleidr}},
note = {Accessed 16 August 2026},
url = {https://kaleidr.com/studio}
}
@misc{kaleidr_docs_2026_08_16,
title = {Build with Kaleidr},
author = {{Kaleidr}},
note = {Developer documentation; accessed 16 August 2026},
url = {https://docs.kaleidr.com/}
}