ملف GeoJSON (.geojson)

IETF قياسي

تنسيق كائن جافا سكريبت الجغرافي (GeoJSON) هو المعيار العالمي والمدعوم محلياً على الويب لترميز هياكل البيانات الجغرافية، ويُستخدم على نطاق واسع في خرائط الويب الحديثة (مثل Leaflet و Mapbox و OpenLayers) وتطبيقات نظم المعلومات الجغرافية (GIS).

تحويل GEOJSON إلى KML

محول مجاني داخل المتصفح للتحويل من GEOJSON إلى KML. قم بتحويل الملفات فوراً على جهازك.

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات GeoJSON من خلال فحص تسلسل البايت الثنائي البادئ:

اختر أو أقطِف الملفات هنا

تحويل خاص بنسبة 100% داخل المتصفح - لا تغادر الملفات جهازك أبداً

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (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 document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
الضغطUncompressed text (readily compressed over HTTP via Gzip or Brotli)
ترتيب البايتات (Endianness)UTF-8 text stream
مساحات الألوانN/A (Geographic Data)
القنوات والبنيةPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
الحد الأقصى للأبعادWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
الشفافيةNone
البث والتحميل التدرجيLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

مصفوفة المقارنة التقنية: GeoJSON مقابل المنافسين

السمة التقنيةGeoJSON (الحالي)KMLGPXSHP
اعتماد خرائط الويبافتراضي ويب 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] باستخدام محول File2File GeoJSON.

تحليل الأمان وناقلات هجوم المحلل اللغوي

يمكن أن تحتوي خصائص GeoJSON على مدخلات مستخدم تعسفية يجب تنقيتها وتطهيرها قبل عرضها في النوافذ المنبثقة للخرائط لمنع هجمات البرمجة عبر المواقع (XSS).

ناقلات الهجوم المعروفة

  • البرمجة النصية عبر المواقع (XSS) عبر إدراج أكواد HTML غير مفلترة ضمن خصائص معالم GeoJSON المعروضة في تلميحات الخرائط.
  • هجمات حجب الخدمة (DoS) من خلال مجموعات هندسية متداخلة بعمق أو مضلعات تحتوي على مليون رأس.
  • تزوير الطلبات من جانب الخادم (SSRF) عن طريق تحميل معالم GeoJSON عن بعد.

أفضل الممارسات الدفاعية:

الأصول التاريخية والمحطات الرئيسية

2016قامت هيئة IETF رسمياً بتوحيد تنسيق GeoJSON كمعيار RFC 7946، مما فرض استخدام أنظمة الإحداثيات WGS 84.
2014أقدمت GitHub على إدخال عرض الخرائط المرئية التفاعلية الأصلية لجميع ملفات .geojson.
2008نشر كل من هوارد بتلر، وشون جيلز، ومجتمع نظم المعلومات الجغرافية مفتوح المصدر مواصفات GeoJSON 1.0 الأولية.

المزايا الرئيسية والإيجابيات

  • معيار ويب أصلي: يندمج مباشرةً ككائنات جافا سكريبت في مكتبات خرائط المتصفح (مثل Mapbox GL JS و Leaflet).
  • هنية JSON المقروءة بشرياً تتيح إمكانية الإنشاء البرمجي والتصفح وتصحيح الأخطاء بكل سهولة.
  • مخطط خصائص تعسفي: إمكانية إرفاق أي بيانات وصفية مخصصة (مثل عدد السكان، والاسم، والسرعة، والإيرادات) مباشرة بالأشكال الهندسية.

القيود الفنية والسلبيات

  • إطناب النص: يتم تخزين إحداثيات الفاصلة العائمة كأرقام ASCII متكررة، مما يؤدي إلى أحجام ملفات أكبر مقارنة بملفات Shapefiles الثنائية أو FlatGeobuf.
  • يفرض معيار RFC 7946 بدقة ترتيب [خط الطول، خط العرض]، مما يربك المطورين المعتادين عادة على ترتيب 'خط العرض/خط الطول'.
  • المضلعات الكبيرة التي تحتوي على ملايين الرؤوس قد تسبب تباطؤاً في عرض نموذج DOM لمتصفح الويب.

معلومات تقنية طريفة

  • يُرتب معيار GeoJSON الرسمي الإحداثيات على هيئة [خط الطول، خط العرض] (ترتيب الاحداثيات الديكارتية X, Y)، وهو عكس تماماً للطريقة التي يتحدث بها الناس عادة ('خط العرض، خط الطول').
  • إذا قمت برفع ملف .geojson إلى GitHub، فسوف تقوم المنصة تلقائياً بعرضه خريطة تفاعلية وقابلة للنقر.
  • يفرض معيار RFC 7946 ضرورة تتبع حلقات حدود المضلعات لـ 'قاعدة اليد اليمنى': بحيث يجب لف الحلقات الخارجية عكس اتجاه عقارب الساعة.

الأسئلة التقنية المتكررة

لماذا يتم ترتيب إحداثيات GeoJSON الخاصة بي بالشكل [خط الطول، خط العرض] بدلاً من [خط العرض، خط الطول]؟

لأنه في الرياضيات ورسومات الكمبيوتر، يتم تحديد الإحداثيات دائماً كـ (X, Y). يمثل خط الطول المحور الأفقي X، بينما يمثل خط العرض المحور الرأسي Y.

كيف يمكنني تحويل KML أو Shapefile إلى GeoJSON؟

يمكنك تحويل ملفات Google Earth KML أو ملفات Esri Shapefile إلى ملفات GeoJSON نظيفة وجاهزة للويب في ثوانٍ باستخدام File2File.app مباشرة في متصفحك.

ما الفرق بين GeoJSON و Shapefile؟

تنسيق Shapefile هو تنسيق ثنائي قديم متعدد الملفات يعود إلى تسعينيات القرن الماضي (.shp، .shx، .dbf). أما GeoJSON فهو تنسيق ويب مفتوح وحديث وملف واحد مكتوب بلغة JSON نظيفة.