تنسيق ملف KML واستخدامه في خرائط جوجل. مقدمة
إعلان
تنسيق ملف KML المتنوع
يتم تخزين ملفات KML بتنسيق XML وتم تطويرها في الأصل لبرنامج رسم الخرائط Keyhole. في عام 2004 ، اشترت Google شركة Keyhole Inc. ، وهذا هو سبب استخدام ملفات KML بكثرة الآن بواسطة خدمات خرائط Google - خرائط Google و جوجل إيرث.
التفاصيل الفنية لملفات KML
تحتوي ملفات KML على معلومات مخزنة بتنسيق XML. تتضمن هذه المعلومات كلاً من الصور والبيانات الأبسط مثل الخطوط والمضلعات والنقاط. تُستخدم هذه الملفات لتخزين معلومات حول موقع معين على الخريطة. يتيح ملف KML للمستخدم ليس فقط تحديد الموقع على الخريطة ، ولكن أيضًا إضافة المحتوى (تنسيق HTML) ، والملمس والعرض من زوايا مختلفة. لفتح ملفات KML في خرائط Google ، كل ما يتطلبه الأمر هو ملف KML نفسه ، المستضاف على الويب. مع وصلة تمديد منفصلة في الخط بحث جوجلسيتم فتحه الخرائط.
مزيد من المعلومات حول تنسيق ملف KML
امتداد الملف | .kml |
فئة الملف | |
ملف مثال | (2.05 كيلوبايت) |
البرامج المرتبطة | Blender (Windows و Mac و Linux) Blue Marble Geographics Global Mapper (Windows) ESRI ArcGIS for Desktop (Windows) Google Earth (Windows و Mac و Linux) خرائط جوجل (الويب) Merkaartor (Windows و Mac و Linux) Keyhole PRO (Windows و Mac) |
KML هو تنسيق ملف يُستخدم لعرض البيانات الجغرافية في مستعرض Earth مثل Google Earth. يستخدم ملف KML بنية قائمة على العلامات مع عناصر وسمات متداخلة ويستند إلى معيار XML. جميع العلامات حساسة لحالة الأحرف ويجب أن تظهر تمامًا كما هي مدرجة في مرجع KML. يشير المرجع إلى العلامات الاختيارية. داخل عنصر معين ، يجب أن تظهر العلامات بالترتيب الموضح في المرجع. إذا كنت مستخدمًا جديدًا لملف KML ، فاستكشف هذا المستند وملفات العينات المصاحبة ( عينات في الأرض) لبدء التعرف على البنية الأساسية لملف KML والعلامات الأكثر استخدامًا. يصف القسم الأول الميزات التي يمكن إنشاؤها باستخدام واجهة مستخدم برنامج Google Earth. تتضمن هذه الميزات العلامات الموضعية والأوصاف وتراكبات الأرض والمسارات والمضلعات. يصف القسم الثاني الميزات التي تتطلب تأليف KML باستخدام محرر نصوص. عندما يتم حفظ ملف نصي بامتداد .kmlأو .kmz، فإن متصفحات Earth تعرف كيفية عرضها. |
نصيحة:لمشاهدة "رمز" KML لإحدى الميزات في برنامج Google Earth ، يمكنك ببساطة النقر بزر الماوس الأيمن فوق الميزة في العارض ثلاثي الأبعاد لبرنامج Google Earth وتحديد نسخ. ثم الصق محتويات الحافظة في أي محرر نصوص. يتم تحويل الميزة المرئية المعروضة في برنامج Google Earth إلى مكافئها النصي KML. تأكد من تجربة هذه الميزة.
لمناقشة كيفية استخدام بعض الميزات الرئيسية في ملف KML ، راجع دليل المطور.
جدول المحتويات
مستندات KML الأساسية
إن أبسط أنواع مستندات KML هي تلك التي يمكن تأليفها مباشرةً في Google Earth - أي أنك لست بحاجة إلى تحرير أو إنشاء أي KML في محرر نصوص. يمكن كتابة العلامات الموضعية وتراكبات الأرض والمسارات والمضلعات جميعها مباشرةً في Google Earth.
العلامات الموضعية
تعد العلامة الموضعية إحدى أكثر الميزات شيوعًا في برنامج Google Earth. تحدد موضعًا على سطح الأرض ، باستخدام دبوس تثبيت أصفر كرمز. تتضمن أبسط علامة موضعية
كمثال ، قم بتمكين المجلد "Absolute Positioning: Top left" في ملف نماذج KML وسترى تراكب الشاشة في الجزء العلوي الأيسر من نافذة العرض. تم إنشاء هذا برمز KML التالي:
يتم التحكم في تحديد الموضع عن طريق تعيين نقطة في الصورة المحددة بواسطة
تحقق من الأمثلة الأخرى في المجلد لترى كيف يمكن الحصول على مواضع ثابتة أخرى ، ولإنشاء صور ذات حجم ديناميكي مع حجم الشاشة. (لاحظ أن xunitsو يوناتيمكن أيضًا تحديدها كـ "بكسل" للتحكم الدقيق.) لمزيد من التفاصيل ، راجع مرجع KML 2.2.
روابط الشبكة
يحتوي ارتباط الشبكة على ملف عنصر بامتداد
ال
- ملف صورة تستخدمه الرموز في أنماط الرموز وتراكبات الأرضية وتراكبات الشاشة
- ملف نموذج مستخدم في ملف
عنصر - ملف KML أو KMZ تم تحميله بواسطة ارتباط شبكة
يمكن أن يكون الملف المحدد إما ملفًا محليًا أو ملفًا على خادم بعيد. في أبسط أشكالها ، تعد روابط الشبكة طريقة مفيدة لتقسيم ملف KML كبير إلى ملفات أصغر يمكن إدارتها على نفس الكمبيوتر.
حتى الآن ، تطلبت جميع الأمثلة لدينا تسليم رمز KML إلى Google Earth من الجهاز المحلي. تمنحك روابط الشبكة القدرة على خدمة المحتوى من موقع بعيد وتستخدم بشكل شائع لتوزيع البيانات على أعداد كبيرة من المستخدمين. بهذه الطريقة ، إذا كانت البيانات بحاجة إلى تعديل ، فيجب تغييرها فقط في موقع المصدر ، ويتلقى جميع المستخدمين البيانات المحدثة تلقائيًا.
برمجة CGI لـ KML
بالإضافة إلى الإشارة إلى الملفات التي تحتوي على بيانات ثابتة ، فإن ارتباط الشبكة
هناك شيئان ضروريان لتقديم KML من خلال CGI للشبكة:
عند إجراء مكالمة من العميل (Google Earth) إلى الخادم ، يجب على الخادم (1) إرجاع رمز استجابة HTTP 200 و (2) تعيين نوع محتوى الاستجابة على نص / عادي أو application / vnd.google -earth.kml + xml.
يجب أن يكون الرد ملف KML صالحًا. بالنسبة للتطبيقات المعقدة ، يعتبر التعامل الصحيح مع الخطأ أمرًا مهمًا للغاية.
نصيحة:من الطرق البسيطة للتعامل مع الأخطاء تحليل خطأ الخادم كنص لاسم مجلد. على سبيل المثال ، يمكن أن تطلب من الخادم إرجاع
تستخدم الأمثلة التالية لغة Python ، لكنها صالحة أيضًا في أي لغة برمجة نصية أخرى.
إنشاء علامة موضعية عشوائية
يقوم برنامج Python النصي التالي بإنشاء قيم عدد صحيح عشوائي لـ خط العرضو خط الطولثم يقوم بإدراج هذه القيم في ملف
#! / usr / bin / python استيراد خط عرض عشوائي = random.randrange (-90، 90) longitude = random.randrange (-180، 180) kml = ("\ ن ""
فيما يلي مثال لملف KML يحتوي على ارتباط شبكة يقوم بتحميل نص Python النصي:
علامة موضعية في كل مكالمة
استعلامات التحديث القائمة على العرض
ارتباط الشبكة القياسي هو ارتباط أحادي الاتجاه: تتدفق البيانات فقط من الخادم إلى برنامج Google Earth. يتيح التحديث المستند إلى العرض الاتصال ثنائي الاتجاه. عندما يكون التحديث المستند إلى العرض نشطًا ، يقوم برنامج Google Earth بإرجاع إحداثيات العرض إلى الخادم في وقت محدد. قد يكون هذا كل نثوانٍ أو دقائق أو ساعات ، أو بمجرد انقضاء فترة زمنية معينة منذ توقف المشهد عن الحركة. ارى
يتم إرجاع الإحداثيات إلى الخادم عن طريق HTTP GET الذي يلحق الإحداثيات على النحو التالي (هذه هي معلومات المربع المحيط الافتراضي):
GET / path / to / sever / script / query؟ BBOX = HTTP / 1.1
إذا تم تقديم الطلب أثناء نظر المستخدم إلى سان فرانسيسكو ، فقد تبدو الإحداثيات على النحو التالي:
احصل على /path/to/server/script/query؟BBOX=-122.497790،37.730385،-122.380087،37.812331 HTTP / 1.1
يمكن استخدام هذه الميزة لبعض التطبيقات الإبداعية للغاية ، ولكن لتبدأ ، يتم تقديم مثال بسيط أدناه.
تتبع نقطة مباشرة تحت وجهة نظرك
يوزع نص Python النصي التالي من جانب الخادم رسالة الإرجاع التي أرسلها برنامج Google Earth ويستجيب بعلامة موضعية في وسط الشاشة. في كل مرة يتم فيها تحديث ارتباط الشبكة ، يتم إنشاء علامة موضعية جديدة.
#! / usr / bin / python import cgi url = cgi.FieldStorage () bbox = url ["BBOX"]. value bbox = bbox.split ("،") west = float (bbox) south = float (bbox) east = تعويم (bbox) شمال = تعويم (bbox) centre_lng = ((شرق - غرب) / 2) + غرب centre_lat = ((شمال - جنوب) / 2) + جنوب kml = ("\ ن ""
وهنا ملف KML لارتباط الشبكة الذي يقوم بتحميل نص Python النصي:
وسط الشاشة وإرجاع علامة موضعية.
يمكن استخدام المبدأ الموضح في هذا المثال لبعض التطبيقات المعقدة للغاية. على سبيل المثال ، إذا كانت لديك قاعدة بيانات للمعلومات الجغرافية ، فيمكنك استخراج إحداثيات العارض ، وإجراء مكالمة إلى قاعدة البيانات للحصول على البيانات الخاصة بالعرض ، وإعادتها إلى Google Earth كملف KML.
3 أنواع MIME لملفات KML
عند الاستجابة لطلب من Google Earth (أو أي مستعرض Earth) ، يجب أن يتبع خادم KML مجموعة معينة من القواعد حتى يتمكن Google Earth من تفسير استجاباته بشكل صحيح.
عند النجاح ، يجب على الخادم إرجاع رمز استجابة HTTP 200 وتعيين نوع محتوى الاستجابة إلى نوع MIME مناسب ، كما هو موضح هنا.
يقرأ برنامج Google Earth ملفات KML و KMZ. نوع MIME لملفات KML هو
- التطبيق / vnd.google-earth.kml + xml
نوع MIME لملفات KMZ هو
- التطبيق / vnd.google-earth.kmz
بالنسبة إلى Apache ، أضف هذه السطور إلى ملف httpd.confملف:
- تطبيق AddType / vnd.google-earth.kml + xml .kml
- تطبيق AddType / vnd.google-earth.kmz .kmz
راجع وثائق Microsoft للحصول على تفاصيل حول إعداد أنواع MIME على IIS الخاص بـ Microsoft.
يجب أن يحتوي نص الرد على بيانات KML صالحة ، بما في ذلك إعلان XML (). إذا قام الخادم بإرجاع ملف KML غير صالح ، فسيتوقف ارتباط الشبكة ، ويتم إلغاء تنشيطه ، وإخراج رسالة خطأ.
تنسيق KML هو امتداد يخزن البيانات الجغرافية للميزات في برنامج Google Earth. تتضمن هذه المعلومات علامات موضعية على الخريطة ، ومنطقة عشوائية على شكل مضلع أو خطوط ، ونموذج ثلاثي الأبعاد ، وصورة لجزء من الخريطة.
لنفكر في التطبيقات التي تتفاعل مع هذا التنسيق.
جوجل إيرث
- بعد البدء ، انقر فوق "افتح"في القائمة الرئيسية.
- ابحث عن الدليل مع الكائن الأصلي. في حالتنا ، يحتوي الملف على معلومات الموقع. اضغط عليها واضغط على "افتح".
واجهة البرنامج مع الإشارة إلى الموقع في شكل ملصق.
دفتر
المفكرة هو تطبيق Windows مدمج لإنشاء ملفات مستندات نصية... يمكن أن يعمل أيضًا كمحرر كود لتنسيقات معينة.
- قم بتشغيل هذا البرنامج. لعرض الملف ، حدد "افتح"على القائمة.
- نحن نختار "كل الملفات"في المجال المناسب. بعد تحديد الكائن المطلوب ، انقر فوق "افتح".
عرض مرئي لمحتويات الملف في برنامج "المفكرة".
يمكننا القول أن امتداد KML له توزيع ضئيل ، ويستخدم حصريًا في Google Earth ، ولن يكون عرض مثل هذا الملف من خلال برنامج Notepad مفيدًا لأي شخص.