ملف GeoJSON (.geojson)
IETF قياسيتنسيق كائن جافا سكريبت الجغرافي (GeoJSON) هو المعيار العالمي والمدعوم محلياً على الويب لترميز هياكل البيانات الجغرافية، ويُستخدم على نطاق واسع في خرائط الويب الحديثة (مثل Leaflet و Mapbox و OpenLayers) وتطبيقات نظم المعلومات الجغرافية (GIS).
تحويل 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 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 (الحالي) | 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] باستخدام محول File2File GeoJSON.
تحليل الأمان وناقلات هجوم المحلل اللغوي
يمكن أن تحتوي خصائص GeoJSON على مدخلات مستخدم تعسفية يجب تنقيتها وتطهيرها قبل عرضها في النوافذ المنبثقة للخرائط لمنع هجمات البرمجة عبر المواقع (XSS).
ناقلات الهجوم المعروفة
- البرمجة النصية عبر المواقع (XSS) عبر إدراج أكواد HTML غير مفلترة ضمن خصائص معالم GeoJSON المعروضة في تلميحات الخرائط.
- هجمات حجب الخدمة (DoS) من خلال مجموعات هندسية متداخلة بعمق أو مضلعات تحتوي على مليون رأس.
- تزوير الطلبات من جانب الخادم (SSRF) عن طريق تحميل معالم GeoJSON عن بعد.
أفضل الممارسات الدفاعية:
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- معيار ويب أصلي: يندمج مباشرةً ككائنات جافا سكريبت في مكتبات خرائط المتصفح (مثل 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 نظيفة.
أزواج تحويل GeoJSON ذات الصلة
يؤدي تحويل متجهات GeoJSON إلى Google KML إلى ترجمة مصفوفات الإحداثيات المصنوعة من JSON الخفيف إلى مستندات XML منظمة ومصممة خصيصاً لبرنامجي Google Earth و Google Maps.
يؤدي تحويل ملفات KML إلى تحويل بيانات جغرافية بتنسيق XML هرمي إلى كائنات JavaScript خفيفة الوزن وموجهة للخرائط الحديثة على الويب.
تحويل بيانات المتجهات من تنسيق GeoJSON إلى ملفات GPX يترجم كائنات JSON الجغرافية القياسية إلى تنسيق يعتمد على لغة XML ومحسّن لأجهزة الملاحة الفعلية.