تخطَّ إلى المحتوى

لوحات معلومات

خريطة النزوح التفاعلية (Interactive Displacement Map)

تطبيق خرائط يعرض أكبر 19 بلد منشأ للاجئين على خريطة Leaflet داكنة، بطبقة GeoJSON مولّدة حرفياً من أداة `generate_map(by:"origin")`؛ حجم كل نقطة يتناسب مع عدد اللاجئين وتُظهر النافذة المنبثقة أرقام اللجوء والنزوح الداخلي.

إعداد: مختبر الخرائط الإنسانية المفتوحة

generate_mapcountry_profile

تطبيق خرائط يعرض أكبر 19 بلد منشأ للاجئين على خريطة Leaflet داكنة، بطبقة GeoJSON مولّدة حرفياً من أداة `generate_map(by:"origin")`؛ حجم كل نقطة يتناسب مع عدد اللاجئين وتُظهر النافذة المنبثقة أرقام اللجوء والنزوح الداخلي.

القيمة

تمثيل مكاني فوري لجغرافيا الأزمات: تظهر كتلة النزوح في حزام السودان–سوريا–أوكرانيا والقرن الإفريقي بوضوح، ما يساعد على توجيه الاستجابة الميدانية.

كيف تعمل؟

تطبيق صفحة واحدة (Leaflet 1.9 + خرائط CARTO الداكنة) يستهلك مخرجات `generate_map` كـ `FeatureCollection` جاهزة. كل نقطة centroid تحمل خصائص اللاجئين والنازحين وطالبي اللجوء. البيانات مضمّنة من استدعاء حقيقي 2025 ويمكن ربطها بنقطة نهاية REST تعيد الطبقة لحظياً.

مثال تقني

// الخادم (Python) يجلب الطبقة، والمتصفح يرسمها
async def crisis_layer(session):
    return await session.call_tool("generate_map", {
        "by": "origin", "metric": "refugees", "limit": 20
    })

// العميل (JavaScript / Leaflet)
L.geoJSON(geojson, {
  pointToLayer: (f, latlng) => L.circleMarker(latlng, {
    radius: Math.max(6, Math.sqrt(f.properties.refugees) / 22),
    fillColor: "#ef4444", color: "#07090e", weight: 1.2, fillOpacity: 0.65
  }).bindPopup(`<b>${f.properties.country}</b><br>لاجئون: ${f.properties.refugees.toLocaleString()}`)
}).addTo(map);