قمت بوصف البيانات المكانية باستخدام GeoJSON

مكتمل

يعد GeoJSON تنسيق بيانات جغرافية مكانية قياسيًا بالإنترنت يستند إلى JavaScript Object Notation (JSON). لإضافة طبقات إلى عنصر التحكم بالخريطة، تحتاج إلى تعريف مصدر بيانات يحتوي على بيانات GeoJSON. ويستخدم عنصر التحكم بالخريطة البيانات لإنشاء تراكبات استنادًا إلى المواقع. على سبيل المثال، ستستخدم مصدر بيانات GeoJSON لتحديد موضع المعالم في طبقة فقاعة على الخريطة.

ملاحظة

ويتم تعريف GeoJSON كمعيار في فريق مهام هندسة الإنترنت (IETF) RFC 7946.

عناصر GeoJSON

يحدد تنسيق GeoJSON ثلاثة كائنات:

  • الموقع الجغرافي
  • الميزة
  • مجموعة معالم

الموقع الجغرافي

تعد الهندسة منطقة في الفضاء. يمكن أن تكون الهندسة:

  • نقطة واحدة يتم تعريفها بخط طول وخط عرض
  • نقاط متعددة تصف خطًا
  • نقاط متعددة تصف المخطط التفصيلي لمضلع
  • مجموعة من الأشكال الهندسية المتعددة

ويحتوي عنصر GeoJSON الهندسي على خاصيتين:

  • typeتحدد نوع الهندسة، مثل Point أو Polygon.
  • coordinates: يحتوي على إحداثيات كقيم خطوط الطول وخطوط العرض في صفيفة من عنصرين. العنصر الأول هو خط الطول، والعنصر الثاني هو خط العرض. وتحتوي النقاط على قيمة مفردة في صفيف. كما تحتوي الخطوط والمضلعات على قيم متعددة في صفيف. بالنسبة إلى المضلعات، يجب إغلاق الشكل، لذا يجب أن يكون الإحداثي الأخير هو نفس الإحداثي الأول.

وإليك مثالاً على عنصر الهندسة الذي يحتوي على نقطة واحدة في مقر Microsoft في ريدموند، واشنطن، الولايات المتحدة الأمريكية:

{
    "type": "Point",
    "coordinates": [-122.136866, 47.642472]
}

وإليك مثالاً آخر على مضلع لمربع حول باريس، فرنسا:

{
    "type": "Polygon",
    "coordinates": [
        [
            [2.2580337524414062, 48.81251594581751],
            [2.4262619018554688, 48.81251594581751],
            [2.4262619018554688, 48.90377176147872],
            [2.2580337524414062, 48.90377176147872],
            [2.2580337524414062, 48.81251594581751]
        ]
    ]
}

وهذا المربع له خمسة إحداثيات: أربعة زوايا والإحداثي الأخير، وهو نفس الإحداثي الأول، لإغلاق المربع.

الميزة

المعلم عبارة عن كيان محدد مكانياً. لذا، يعد هندسة تحتوي على مجموعة من الخصائص التي تصف ما هو موجود في هذا الموقع. ويمكن أن تكون الخصائص بيانات، مثل اسم مكان أو درجة الحرارة.

ويحتوي عنصر GeoJSON الذي يمثل معلمًا على ثلاثة خصائص:

  • type: تحديد نوع الكائن وهو Feature دائماً لمعلم.
  • geometry: كائن هندسة GeoJSON يحدد موقع المعلم.
  • properties: أي كائن GeoJSON صالح، ويعرف خصائص المعلم.

إليك مثالاً على معلم لباريس، فرنسا:

{
    "type": "Feature",
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [2.2580337524414062, 48.81251594581751],
                [2.4262619018554688, 48.81251594581751],
                [2.4262619018554688, 48.90377176147872],
                [2.2580337524414062, 48.90377176147872],
                [2.2580337524414062, 48.81251594581751]
            ]
        ]
    },
    "properties": {
        "city_name": "Paris",
        "population": 2148271
    }
}

مجموعة معالم

مجموعة المعالم، كما يوحي اسمها، هي مجموعة من المعالم.

ويحتوي عنصر GeoJSON لمجموعة المعالم على اثنين من الخصائص:

  • type: تحديد نوع الكائن وهو FeatureCollection دائماً لمجموعة معالم.
  • features: صفيف كائنات معلم GeoJSON.

إليك مثالاً على مجموعة معالم لمدينتين أوروبيتين:

{
    "type": "FeatureCollection",
    "features": [{
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [2.2580337524414062, 48.81251594581751],
                        [2.4262619018554688, 48.81251594581751],
                        [2.4262619018554688, 48.90377176147872],
                        [2.2580337524414062, 48.90377176147872],
                        [2.2580337524414062, 48.81251594581751]
                    ]
                ]
            },
            "properties": {
                "city_name": "Paris",
                "population": 2148271
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [-0.5287170410156249, 51.26019611626714],
                        [0.26641845703125, 51.26019611626714],
                        [0.26641845703125, 51.70916142932303],
                        [-0.5287170410156249, 51.70916142932303],
                        [-0.5287170410156249, 51.26019611626714]
                    ]
                ]
            },
            "properties": {
                "city_name": "London",
                "population": 8908081
            }
        }
    ]
}

في هذه الوحدة، تعرفت على تنسيق GeoJSON المستخدم لتخزين البيانات المكانية وأنواع العناصر الثلاثة الخاصة بها. بعد ذلك، ستستخدم واجهة برمجة تطبيقات للحصول على بيانات جودة الهواء، وتحويل البيانات إلى GeoJSON، ثم عرض البيانات على الخريطة.