محول GeoJSON إلى Google KML
يؤدي تحويل متجهات GeoJSON إلى Google KML إلى ترجمة مصفوفات الإحداثيات المصنوعة من JSON الخفيف إلى مستندات XML منظمة ومصممة خصيصاً لبرنامجي Google Earth و Google Maps.
مقارنة التنسيقات والمواصفات التقنية
| المواصفات | GEOJSON | KML |
|---|---|---|
| نوع MIME | application/geo+json | application/vnd.google-earth.kml+xml |
| النوع | geographic vector JSON | geographic XML notation |
| الضغط | none (JSON text) | XML text (KMZ when ZIP compressed) |
| المواصفات القياسية | IETF RFC 7946 | OGC KML 2.3 |
| رأس البايتات السحرية (Magic Bytes) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
نظرة عامة على التنسيق والاستخدامات
غالباً ما تُجمع بيانات المتجهات الجغرافية وتُشارك باستخدام GeoJSON نظراً لأن مطوري الويب ومكتبات خرائط JavaScript تعالجونها بشكل طبيعي. ومع ذلك، تتطلب برامج نظام المعلومات الجغرافية لسطح المكتب مثل Google Earth وتطبيقات الكرة الأرضية القديمة للشركات لغة Keyhole Markup Language، المعروفة باسم KML. تتيح ترجمة هذه التنسيقات للباحثين الميدانيين ورسامي الخرائط عرض مضلعات الحدود المستخرجة من الويب، ونقاط قياس عن بُعد للطائرات بدون طيار، ومسارات الأصول البلدية داخل الكرات الأرضية الافتراضية دون كتابة نصوص برمجية مخصصة. كما يسد نقل البيانات من GeoJSON إلى KML الفجوة بين واجهات برمجة تطبيقات الويب مفتوحة المصدر وأدوات الخرائط الموجهة للمستهلكين. يجمع العديد من المخططين المدنيين البيانات باستخدام مكتبات Leaflet أو Mapbox التي تُخرج ملفات GeoJSON. عندما يرغب أصحاب المصلحة في مراجعة تلك الطبقات بالضبط في بيئة سطح مكتب ثلاثية الأبعاد، فإن تحويل علامات الهندسة وخصائص التصميم وخصائص البيانات الوصفية إلى عقد XML يضمن عرض العناصر المرئية مثل الأيقونات وعرض الخطوط وألوان التعبئة بشكل صحيح.
المواصفات التقنية وتحليل الترميز (Codec)
يستخدم GeoJSON نوع MIME application/geo+json، والذي يمثل النقاط والخطوط والمضلعات الجغرافية داخل نص JavaScript Object Notation البسيط. وهو لا يحتوي على بايتات سحرية ثنائية، بل يعتمد بدلاً من ذلك على أقواس ASCII أو UTF-8 القياسية وأزواج المفتاح والقيمة مثل "type": "FeatureCollection". وعلى العكس من ذلك، يستهلك Google KML نوع MIME application/vnd.google-earth.kml+xml، حيث ينظم الميزات المكانية داخل علامات XML مثل <Placemark> و <Point> و <Polygon>. ورغم أن أيّاً من التنسيقين لا يستخدم الضغط الناقص أصلياً على مستوى النص، إلا أنه يمكن ضغط ملفات KML في أرشيفات KMZ باستخدام ضغط DEFLATE القياسي لحزم بيانات المتجهات الثقيلة وأيقونات الصور المحلية معاً.
توافق أنظمة التشغيل والمتصفحات
تُحمّل كلا التنسيقين بسلاسة عبر أنظمة التشغيل الحديثة بما في ذلك Windows و macOS و Linux و iOS و اندرويد. تحلل متصفحات الويب الحديثة بطبيعتها سلاسل GeoJSON باستخدام محركات JavaScript القياسية، بينما يتطلب Google KML محللات مخصصة أو برامج سطح مكتب مخصصة للكرة الأرضية مثل Google Earth Pro. لا يمكن للمتصفحات المحمولة عرض ملفات KML الخام مباشرة بدون تطبيق مساعد أو عملية عرض مسبق من جانب الخادم.
💡 معلومات مفيدة
عند تحويل مجموعات بيانات كبيرة تحتوي على آلاف المضلعات المعقدة، قم بتقسيم مصدر GeoJSON إلى ملفات إقليمية أصغر قبل التصدير إلى KML لمنع حدوث أعطال في الذاكرة في تطبيقات الخرائط للمستهلكين.
مقارنة التنسيقات والمواصفات التقنية
يتم نقل ملف متجهات GeoJSON بحجم 5 ميجابايت القياسي في حوالي 0.05 ثانية عبر اتصال الألياف الضوئية بسرعة 1 جيجابت في الثانية، وحوالي 0.4 ثانية عبر شبكة الجيل الخامس 5G المتنقلة القياسية، وحوالي ثانية واحدة عبر اتصال 4G LTE النموذجي.
الأسئلة الشائعة
كيف تحول ملفات GeoJSON إلى Google KML دون فقدان الجودة؟
هذا التحويل خالٍ تماماً من الفاقد لأن كلا التنسيقين يخزنان إحداثيات المتجهات باستخدام قيم خطوط الطول والعرض العددية الدقيقة. تعين عملية الترجمة مفاتيح GeoJSON إلى عناصر KML XML المقابلة دون تغيير دقة الإحداثيات، على الرغم من أن خصائص التصميم المخصصة قد تتطلب تعييناً يدوياً إذا كانت البرامج المستهدفة تقرأ السمات غير القياسية بشكل مختلف.
ما الفرق بين GeoJSON و Google KML؟
GeoJSON هو تنسيق نصي خفيف الوزن مبني على بنية JSON، مصمم خصيصاً لوواجهات برمجة تطبيقات خرائط الويب ومعالجة JavaScript. أما Google KML فهو لغة مبنية على XML مصممة لـ Google Earth، وتوفر دعماً مدمجاً لتقييد الارتفاع ثلاثي الأبعاد، ووجهات نظر الكاميرا المخصصة، وتسلسلات المجلدات المتداخلة، والأيقونات المدمجة.