ملف GeoJSON (.geojson)
IETF قياسييشيع GeoJSON في الخرائط على الويب، لكن الدعم يختلف. يعرض GitHub الملفات المتوافقة ضمن حدود؛ ويحدد RFC 7946 ترتيب خط الطول ثم العرض.
تحويل GEOJSON إلى KML
محول مجاني داخل المتصفح للتحويل من GEOJSON إلى KML. قم بتحويل الملفات فوراً على جهازك.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات GeoJSON من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات GeoJSON من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65تمثيل ASCII: {\n "type": "Feature
التوحيد القياسي: IETF RFC 7946
المواصفات الفنية
| هيكلية الحاوية | مستند JSON وفق RFC 7946، يمثّل المعالم الجغرافية ومجموعاتها وهندساتها |
| الضغط | نص غير مضغوط (يمكن ضغطه بسهولة عبر HTTP باستخدام Gzip أو Brotli) |
| ترتيب البايتات (Endianness) | تدفق نصي بترميز UTF-8 |
| مساحات الألوان | لا ينطبق (بيانات جغرافية) |
| القنوات والبنية | نقاط ونقاط متعددة وخطوط متعددة ومضلعات ومضلعات متعددة ومجموعات هندسية وخصائص مخصصة |
| الحد الأقصى للأبعاد | نظام WGS 84 للإحداثيات الجغرافية: خط الطول من -180 إلى +180، وخط العرض من -90 إلى +90 |
| الشفافية | لا ينطبق |
| البث والتحميل التدرجي | يتيح GeoJSON المفصول بأسطر (GeoJSONL / GeoJSONSeq) معالجة ملايين المعالم بالتدفق |
مصفوفة المقارنة التقنية: GeoJSON مقابل المنافسين
| السمة التقنية | GeoJSON (الحالي) | KML | GPX | SHP |
|---|---|---|---|---|
| اعتماد خرائط الويب | افتراضي ويب GIS عالمي بنسبة 100% | الافتراضي في Google Earth | الافتراضي لأجهزة GPS وتطبيقات اللياقة البدنية | المعيار القديم لنظم المعلومات الجغرافية المكتبية |
| ترتيب الإحداثيات | [خط الطول، خط العرض] (X, Y) | خط الطول، خط العرض، الارتفاع | خط العرض، خط الطول | إحداثيات X, Y |
| أسلوب الصياغة | أزواج مفاتيح وقيم JSON نظيفة | وسوم XML مطولة (<kml>) | وسوم XML مطولة (<gpx>) | مجموعة ملفات ثنائية (.shp و.shx و.dbf) |
| مخطط الخصائص | كائن خصائص JSON مرن | وسوم مخطط ExtendedData | وسوم مخطط GPX ثابتة | أعمدة dBase IV (.dbf) ثابتة |
أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري
تظهر نقاط الخريطة في المحيط قرب القارة القطبية الجنوبية بدلاً من مواقعها الحقيقية.
السبب الجذري: عُكست قيمتا خط العرض وخط الطول عن طريق الخطأ في مصفوفة الإحداثيات.
الاسترداد: بدّل موضعي الإحداثيين إلى [lon, lat] باستخدام محوّل GeoJSON في File2File.app.
تحليل الأمان ومتجهات الهجوم على المحلّل
قد تتضمن خصائص GeoJSON مدخلات عشوائية من المستخدم، لذا يجب تنقيحها قبل عرضها في نوافذ الخرائط المنبثقة لتجنب هجمات XSS.
ناقلات الهجوم المعروفة
- هجوم XSS عبر شيفرة HTML غير مهربة في خصائص معالم GeoJSON، تظهر في تلميحات الخرائط.
- حجب الخدمة عبر مجموعات هندسية متداخلة بعمق أو مضلعات تضم ملايين الرؤوس.
- تزوير طلبات من جانب الخادم (SSRF) عبر تحميل معالم GeoJSON عن بُعد.
أفضل الممارسات الدفاعية: نقّح النصوص في جميع الخصائص باستخدام DOMPurify قبل إدراجها في نوافذ الخرائط المنبثقة.
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- معيار ويب أصلي: يُحوَّل مباشرةً إلى كائنات جافا سكريبت في مكتبات خرائط المتصفح (مثل Mapbox GL JS و Leaflet).
- تتيح بنية JSON المقروءة للبشر إنشاء البيانات وتصفيتها وتصحيح أخطائها برمجيًا بسهولة.
- تتيح بنية الخصائص المرنة إضافة أي بيانات وصفية مخصصة، مثل السكان والاسم والسرعة والإيرادات، مباشرةً إلى الأشكال الهندسية.
القيود الفنية والسلبيات
- الإحداثيات النصية العشرية تزيد حجم الملف مقارنةً بتنسيقات Shapefile الثنائية أو FlatGeobuf.
- يفرض RFC 7946 ترتيب [خط الطول، خط العرض]، وهو ما قد يربك المطورين المعتادين على ترتيب «خط العرض، خط الطول».
- قد تبطئ المضلعات الكبيرة التي تضم ملايين الرؤوس عرض DOM في متصفحات الويب.
معلومات تقنية طريفة
- يرتّب معيار GeoJSON الرسمي الإحداثيات [خط الطول، خط العرض]، أي ترتيب X ثم Y، وهو عكس الترتيب الشائع في الكلام: «خط العرض، خط الطول».
- يشيع GeoJSON في الخرائط على الويب، لكن الدعم يختلف. يعرض GitHub الملفات المتوافقة ضمن حدود؛ ويحدد RFC 7946 ترتيب خط الطول ثم العرض.
- يشترط RFC 7946 اتباع قاعدة اليد اليمنى في حلقات حدود المضلعات؛ إذ يجب رسم الحلقات الخارجية عكس اتجاه عقارب الساعة.
الأسئلة التقنية المتكررة
لماذا تأتي إحداثيات GeoJSON بترتيب [خط الطول، خط العرض] بدلًا من [خط العرض، خط الطول]؟
يشيع GeoJSON في الخرائط على الويب، لكن الدعم يختلف. يعرض GitHub الملفات المتوافقة ضمن حدود؛ ويحدد RFC 7946 ترتيب خط الطول ثم العرض.
كيف يمكنني تحويل KML أو Shapefile إلى GeoJSON؟
يمكنك تحويل ملفات KML من Google Earth أو ملفات Shapefile من Esri إلى GeoJSON جاهز للويب باستخدام File2File.app مباشرةً في المتصفح.
ما الفرق بين GeoJSON وShapefile؟
لا تزال ملفات Shapefile مستخدمة على نطاق واسع لتبادل البيانات وتدعمها برامج نظم المعلومات الجغرافية، لكن بنيتها متعددة الملفات وقيود السمات قد تجعل GeoJSON أو قاعدة بيانات جغرافية أنسب لبعض سير العمل.
أزواج تحويل GeoJSON ذات الصلة
يؤدي تحويل متجهات GeoJSON إلى Google KML إلى تحويل مصفوفات إحداثيات JSON خفيفة الوزن إلى مستندات XML منظمة ومصممة خصيصاً لبرنامجَي Google Earth وGoogle Maps.
يؤدي تحويل ملفات Google KML إلى GeoJSON إلى تحويل البيانات الجغرافية الهرمية بتنسيق XML إلى بيانات متجهة خفيفة الوزن بتنسيق GeoJSON لخرائط الويب الحديثة.
يؤدي تحويل بيانات المتجهات من تنسيق GeoJSON إلى ملفات GPX إلى تحويل كائنات JSON الجغرافية القياسية إلى تنسيق يعتمد على XML ومحسّن لأجهزة الملاحة.