تم تصميم هذا البرنامج التعليمي لتعريفك بالميزات الجديدة المثيرة الموجودة في KML 2.1. إذا كنت مهتمًا بجولة سريعة، فابدأ بالنقر على الروابط لمشاهدة النماذج في Google Earth. إذا كنت تريد المزيد من التفاصيل حول عناصر KML الجديدة، فادخل في النص وادرس الأرقام لفهم كيف تضفي هذه الميزات المرونة والقدرة على العمل على هذا الإصدار الجديد من Google Earth. نحن متحمسون لرؤية العروض التقديمية والجولات المبتكرة التي تنشئها باستخدام هذه الأدوات.
راجع مرجع KML 2.1 ومخطط KML 2.1 للحصول على تفاصيل حول العناصر التي تمت مناقشتها هنا. |
أبرز ميزات KML 2.1
- المناطق - توفّر المناطق سلوكًا اختياريًا ومستوى تفاصيل يتيح لك ضبط كيفية عرض بياناتك في Google Earth. عند استخدام ميزة "المناطق" مع NetworkLinks، تتيح "المناطق" بث مجموعات البيانات الكبيرة جدًا باستخدام التحميل "الذكي" للبيانات على مستويات متعددة من الدقة (يُرجى الاطّلاع على القسم حول تراكبات مميزة). يمكنك أيضًا محاكاة طبقات Google Earth باستخدام "المناطق".
- نماذج ثلاثية الأبعاد مزخرفة - يمكن تصميم عناصر ثلاثية الأبعاد بشكل طبيعي في مساحتها الخاصة للإحداثيات وتصديرها كملفات COLLADATM، ثم استيرادها إلى Google Earth ووضعها على سطح الأرض.
- تحديثات تدريجية - يمكنك الآن إجراء تحديث تدريجي للبيانات التي تم تحميلها من خلال NetworkLinks، مثل تغيير بيانات KML التي تم تحميلها سابقًا في Google Earth وإضافتها وحذفها.
- تاريخ/وقت انتهاء الصلاحية - يمكنك تحديد dateTime لتحديث البيانات بحيث يتم مسح ذاكرة التخزين المؤقت وتظل البيانات محدّثة.
- مجلدات زر الاختيار - للسماح للمستخدم بتحديد عنصر واحد فقط في مجلد واحد في كل مرة، استخدم عنصر ListStyle الجديد لتحديد ملف.
نماذج رائعة
- العروض التوضيحية البسيطة للمنطقة
- استيراد الصور التاريخية: Mountain View DOQQ, 1991 (مجموعة بيانات كبيرة جدًا، تم تقسيمها إلى مناطق فرعية تم تحميلها باستخدام NetworkLinks)
- مَعلم جامعي (نموذج COLLADA ثلاثي الأبعاد مع زخارف، تم تصميمه في SketchUp)
- التحديث الديناميكي لرابط الشبكة
- فرض إعادة تحميل البيانات في تاريخ/وقت محدَّد (يتم استخدام ميزة جديدة لانتهاء الصلاحية)
- مجلدات الخيارات اللاسلكية
راجع المواصفات!
فيما يلي بعض العناصر الرئيسية الجديدة التي ستتعرف عليها في KML 2.1:
العمل مع المناطق
تُعد المناطق ميزة KML قوية وجديدة تتيح لك إضافة مجموعات بيانات كبيرة جدًا إلى Google Earth بدون التضحية بالأداء. ويتم تحميل البيانات ورسمها فقط عندما تكون ضمن عرض المستخدم وتشغل جزءًا معينًا من الشاشة. باستخدام المناطق، يمكنك تقديم مستويات منفصلة من التفاصيل للبيانات، بحيث لا يتم تحميل التفاصيل الدقيقة إلا عندما تملأ البيانات جزءًا كبيرًا من الشاشة بما يكفي لإظهار التفاصيل.
ملاحظة: في KML، يتم اشتقاق بعض الفئات من فئة "رئيسية". ترث الفئات "الثانوية" المشتقة جميع عناصر الفئة الرئيسية وتضيف بعض العناصر المحددة التابعة لها. (هذا أسلوب شائع للأنظمة التي تركز على الكائنات.) للتيسير، يشير هذا القسم إلى الفئة الرئيسية بدلاً من إدراج جميع الفئات الفرعية المشتقة. مثلاً:
- يشير مصطلح الميزة إلى أي عنصر KML مستمد من الميزة: مستند، مجلد، GroundOverlay، NetworkLink، علامة موضعية، تراكب الشاشة.
- يشير مصطلح Geometry إلى أي عنصر هندسي في KML: النقطة أو المضلّع أو linearRing أو LineString أو الطراز أو MultiGeometry.
- التراكب يشير إلى العناصر المستمدة من التراكب: Groundoverlay و"تراكب الشاشة".
يمكنك الاطّلاع على مرجع KML للحصول على رسم بياني يوضّح التوريث ضمن عناصر KML.
المفاهيم الأساسية
يمكن أن تحتوي أي ميزة على منطقة. تؤثر المنطقة في مستوى رؤية هندسة العلامة الموضعية أو صورة التراكب. تحدد المناطق سلوك كل من الانتقاء ومستوى التفصيل للأشكال الهندسية أو التراكبات المتأثرة. يتم اكتساب المناطق من خلال العرض الهرمي لـ KML وتؤثر في مستوى رؤية العناصر المحددة في التدرج الهرمي.
يصف هذا القسم المفاهيم الأساسية التالية اللازمة لفهم المناطق:
- مربع التحجيم
- مستوى التفاصيل (LOD)
- الارتفاع
- نطاق التلاشي
- مناطق الدمج
- روابط الشبكة المستندة إلى المنطقة
مربع التحجيم
تحتوي المنطقة على <LatLonAltBox> تحدد مربع الإحاطة لبياناتك. مربّع الإحاطة هو وحدة تخزين تتضمّن مجموعة من العناصر أو نقاط البيانات. على غرار <LatLonBox> في Groundoverlay، يوجد <LatLonAltBox> في منطقة ما بحدود شمالية وجنوبية وشرقية وغربية. إذا كانت البيانات المضمنة في المنطقة ثلاثية الأبعاد أو ثنائية الأبعاد على ارتفاع، فيجب أيضًا أن يتضمن <LatLonAltBox> المنطقة أيضًا حدًا أدنى للارتفاع، <minAltitude>، والحد الأقصى للارتفاع، <maxAltitude>.
يتم رسم الكائنات المقترنة بمربع الإحاطة عندما (1) تأتي المنطقة ضمن العرض و (2) يقع الحجم المتوقع على الشاشة لجهاز <LatLonAltBox> ضمن نطاق البكسل المحدد لهذه المنطقة، كما هو موضح في مستوى التفاصيل (LOD) . وعند استيفاء هذين الشرطين، يُقال إن المنطقة "نشطة".
مستوى التفاصيل (LOD)
المفهوم المهم الثاني المرتبط بالمناطق هو مستوى التفاصيل، أو LOD باختصار. نظرًا لأن شاشة الكمبيوتر تحتوي على قدر محدود من المساحة، فمن الأفضل إعداد أشياء بحيث يتم تحميل كميات كبيرة من البيانات فقط عندما تكون هناك وحدات بكسل كافية لعرض البيانات بشكل كافٍ. عندما تشغل المنطقة جزءًا صغيرًا نسبيًا من الشاشة (ربما لأن المستخدم يعرضها من مسافة بعيدة أو إذا كانت منطقة مسطحة يتم عرضها بشكل غير مباشر)، فإن آلية LOD تتيح لك (مؤلف KML) تحديد مجموعة بيانات ذات دقة أقل ليتم استبدالها ببيانات الدقة الكاملة. ويتم تحميل مجموعة البيانات ذات الدقة المنخفضة هذه بشكل أسرع، وبما أنها تحتل جزءًا صغيرًا من الشاشة على أية حال، فلا يمكن للمستخدم تمييز هذا الاختلاف على الأرجح.
وفي إحدى المناطق، يتيح لك العنصران <minLodPixels> و<maxLodPixels> تحديد منطقة من الشاشة (بالبكسل المربّع). عند عرض بياناتك على الشاشة، يجب أن تشغل مساحة من الشاشة أكبر من <minLodPixels> وأقل من <maxLodPixels> لتكون مرئية. وبعد أن يتجاوز الحجم المتوقع للمنطقة خارج هذه الحدود، لن يبقى مرئيًا، كما ستصبح المنطقة غير نشطة.
في الحالة الخاصة التي تريد أن تكون البيانات نشطة فيها لحجم لا نهائي، حدد -1 (القيمة الافتراضية) لـ <maxLodPixels>.
المثال الأول: منطقة للتراكب الأرضي
لنلقِ نظرة أولاً على مثال بسيط يُنشئ منطقة لتراكب ثنائي الأبعاد على مستوى سطح الأرض. يستخدم هذا المثال تركيبًا أرضيًا يحتوي على بيانات تاريخية تعرض جزءًا من مدينة ماونتن فيو بولاية كاليفورنيا في عام 1991. مع تكبير المستخدم للمنطقة، يظهر التراكب. في ما يلي الشكل الذي يظهر عليه التراكب عندما يكون مرئيًا لأول مرة (يتضمن نموذج الملف أيضًا سطرًا خطيًا أبيض اللون لإبراز التراكب بشكل أفضل):
في هذا المثال، يكون حجم <minLodPixels> 128، وهو ما يعني ظهور GroundOverlay عندما تشغل 128 بكسل مربع على الشاشة. (يستخدم المثال القيمة الافتراضية -1 لـ <maxLodPixels>، مما يعني أنها ستظل مرئية بينما يقوم المستخدم بالتكبير بهذه الزاوية.) الصورة المستخدمة لهذا التراكب هي 256 بكسل مربع مربع.
إليك كيف تبدو الصورة عند تكبير المستخدم لها:
إليك ما تبدو عليه الصورة المائلة قبل أن تصبح غير مرئية نظرًا لأنها تستهلك مساحة شاشة أقل من قيمة <minLodPixels>:
لا يلزم أن يحتوي <LatLonAltBox> لهذه البيانات على عنصري <minAltitude> و<maxAltitude> لأن البيانات مسطحة وعلى مستوى الأرض. يتطابق مربع الإحاطة الخاص بالبيانات في <LatLonAltBox> للمنطقة> مع حدود <LatLonBox> للتراكب الأرضي، كما هو موضح في ملف KML أدناه:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Flat Region</name>
<Region>
<LatLonAltBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<GroundOverlay>
<name>Mountain View DOQQ</name>
<Icon>
<href>files/image.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonBox>
</GroundOverlay> <Document> </kml>
لاحظ أيضًا، ضمن ملف KML، أن المنطقة هي إحدى عناصر الصورة (أو الشكل الهندسي) التي تؤثر فيها رؤيتها.
والآن بعد أن حصلت على الوقت الكافي لفحص ملف KML، انقر فوق الرابط التالي لتحميل التراكب إلى برنامج Google Earth. بعد ذلك، جرّب وجهات نظر مختلفة وشاهد عندما تكون المنطقة ظاهرة أو غير معروضة، وذلك حسب مساحة الشاشة التي تتطلبها. لاحظ أنه في حالة إمالة العرض بالقدر الكافي أو في حالة التصغير قليلاً، سيختفي الإعلان المتراكب لأنه يشغل مساحة صغيرة جدًا في الشاشة لتلبية مطلب <minLodPixels>.
عرض مثال في Google Earth (historicoverlay.kmz)
الارتفاع
المثال 2: منطقة نموذج ثلاثي الأبعاد
يوضح المثال التالي كيفية إنشاء منطقة تحتوي على كائنات ثلاثية الأبعاد على مستوى الأرض. يحتوي <LatLonAltBox> لهذه المنطقة على <maxAltitude> من 300 متر لأن هذا هو ارتفاع المبنى. ومن المحتمل أن تتعرف على هذه المباني على أنها مجمع الأمم المتحدة في مدينة نيويورك.
من المهم ملاحظة أن حدود <LatLonAltBox> للمنطقة لا تتطابق بالضرورة مع حدود خطوط الطول ودوائر العرض في النموذج. ترتبط إحداثيات النموذج بأصله المحلي، والذي قد تتم إزاحته من الموضع الفعلي للنموذج على الأرض.
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>3D Region on ground</name>
<Placemark>
<name>United Nations Headquarters</name>
<visibility>0</visibility>
<Region>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
<LatLonAltBox>
<north>40.750683130314</north>
<south>40.748162385230</south>
<east>-73.966608428427</east>
<west>-73.969476624071</west>
<minAltitude>0</minAltitude>
<maxAltitude>300</maxAltitude>
<altitudeMode>absolute</altitudeMode>
</LatLonAltBox>
</Region>
<Model>
<altitudeMode>absolute</altitudeMode>
<Location>
<longitude>-73.967763927199</longitude>
<latitude>40.749458312255</latitude>
<altitude>0.406173708576</altitude>
</Location>
<Link>
<href>models/un.dae</href>
</Link>
</Model>
</Placemark>
</Document>
</kml>
انقر فوق الرابط التالي لتحميل الملف إلى برنامج Google Earth. ومرة أخرى، جرّب نقاط العرض المختلفة لمشاهدة الوقت الذي تصبح فيه المباني مرئية ومتى تتم إزالتها من العرض.
عرض مثال في Google Earth (unitedNations.kmz)
المثال 3: منطقة لتراكب ثنائي الأبعاد في الارتفاع
يوضح هذا المثال كيفية إضافة تراكب ثنائي الأبعاد للعرض فوق سطح الأرض على ارتفاع محدد. ويعد هذا الأسلوب مفيدًا للبيانات التي تعرض طُرق عرض بيانات الطقس وحالات حركة المرور الجويّة. يعرض المثال هنا غطاء سحابة صغيرًا على ارتفاع 100000 متر فوق مستوى سطح البحر.
يحدد <LatLonAltBox> الخاص بالمنطقة قيمة 100000 متر لكل من عنصري <minAltitude> و<maxAltitude>. (القيمة هي نفسها لكلا العنصرين، لأن التراكب ثنائي الأبعاد وليس له سمك). يعتبر <altitudeMode> مطلقًا، مما يعني أن هذه القيمة نسبية لمستوى البحر.
لاحظ أن قيمة <altitude> للسطح الأرضي هي 100000 أيضًا (أي أنها تطابق قيمة الارتفاع لمربع الإحاطة بالمنطقة)، وأن <altitudeMode> في GroundOverlay يطابق القيمة المحددة لـ <altitudeMode> في المنطقة.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Flat Region at altitude</name>
<GroundOverlay>
<name>Cloud overlay</name>
<Region>
<LatLonAltBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
<minAltitude>100000</minAltitude>
<maxAltitude>100000</maxAltitude>
<altitudeMode>absolute</altitudeMode>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<Icon>
<href>files/image.PNG</href>
</Icon>
<altitude>100000</altitude>
<altitudeMode>absolute</altitudeMode>
<LatLonBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>
عرض مثال في Google Earth (cloudRegion.kmz)
نطاق التلاشي
ويمكنك أيضًا تحديد درجة التلاشي لمنطقة ما، ما يتيح للكائن الانتقال بشكل سلس من الشفافية إلى شفاف، والعودة مرة أخرى. ويستخدم برنامج Google Earth maxFadeExtent لتحديد المنحدر من شفاف بالكامل إلى معتم بالكامل عندما تكون المنطقة بأقصى حجم مرئي، ويستخدم minFadeExtent لتحديد منحدر التلاشي عندما تكون المنطقة بأدنى حجم مرئي. نطاقات التلاشي اختيارية، ولكنها تمنع تأثير "البوب" بين خطوط السلاسل أو المضلعات ذات درجات الدقة المختلفة. تلاشي اللون مكلف جدًا من حيث الأداء ويجب عدم استخدامه مع الصور.
ملاحظة: ينطبق نطاق التلاشي على جميع الكائنات باستثناء رموز العلامات الموضعية. يتم رسم هذه الرموز عندما يزيد نطاق التلاشي عن 0.5.
يوضح المثال التالي كيفية تأثير تلاشي الألوان على LineString.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Region in Placemark LineString</name>
<description>
The LineString corners mark the extent
of the Region LatLonAltBox.
The LineString minFadeExtent (at greatest range)
is 1/4 of the maxFadeExtent (at closest range)..
</description>
<Placemark>
<name>Region LineString</name>
<LineString>
<coordinates>
22,50,0
28,50,0
28,45,0
22,45,0
22,50,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>50</north>
<south>45</south>
<east>28</east>
<west>22</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024</maxLodPixels>
<minFadeExtent>128</minFadeExtent>
<maxFadeExtent>512</maxFadeExtent>
</Lod>
</Region>
</Placemark>
</Document>
</kml>
عرض مثال في Google Earth (fadeLineString.kml)
مناطق الدمج
الاستخدام الشائع للمناطق هو دمجها مع المناطق الأكبر المرتبطة بالدقة الأقل، والمناطق الصغيرة داخل المناطق المرتبطة بمستويات أدق من التفاصيل بشكل متزايد. في الشكل التالي، يكون لكل منطقة مجموعة من حدود لود التي تحدد حجم الشاشة المتوقع للمنطقة بوحدات البكسل المطلوبة لتنشيط المنطقة المرتبطة. مع اقتراب نقطة العرض للمستخدم، تصبح المناطق ذات مستوى التفاصيل الأكثر دقة (LOD) نشطة نظرًا لأن المنطقة تشغل مساحة أكبر على الشاشة. تستبدل المناطق ذات LOD الأكثر دقة المناطق التي تم تحميلها مسبقًا بـ LODs الأكثر خشونة.
وعندما تصبح المناطق المتداخلة المتعاقبة نشطة، يمكنها
- اجمع البيانات المرتبطة بكل منطقة (كما هو موضح في مثال التراكب الفائق الموضح أدناه)
- استبدال بيانات المنطقة التي تم تحميلها سابقًا بالبيانات الجديدة (كما هو موضح في الشكل السابق)
يجب تضمين <LatLonAltBox> في منطقة فرعية بالكامل داخل <LatLonAltBox> من المنطقة الرئيسية التابعة لها. يتم اكتساب المناطق من خلال العرض الهرمي للمجلد وNetworkLink. تكون للمناطق المحددة محليًا الأولوية على المناطق المحددة أعلى في التسلسل الهرمي للمجلد. يوضح المثال التالي كيفية تجاوز النطاق المحلي لإحدى المناطق لمنطقة محددة أعلى في التسلسل الهرمي. في هذا المثال، تكتسب العلامة الموضعية "ukraineRegion" المنطقة من مستندها الرئيسي. يحدد المجلد "romaniaFolder" منطقته الخاصة التي يتم استخدامها بواسطة العلامة الموضعية "romaniaRegion". راجع القسم التالي حول التحميل الذكي لروابط الشبكة التي تستند إلى المنطقة للحصول على المزيد من الأمثلة حول كيفية استخدام المناطق في NetworkLinks لتحقيق أقصى قدر من الفاعلية.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <Folder> <name>romaniaFolder</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark> </Folder> </Document> </kml>
تحميل "الشبكات الذكية" المستندة إلى المنطقة
يُعد NetworkLink القائم على المنطقة والموضح في المثال السابق الطريقة الأكثر فعالية لنشر مجموعة بيانات كبيرة جدًا في Google Earth. وباستخدام المناطق مع NetworkLinks، يمكنك إنشاء عرض هرمي للمؤشرات، يشير كل منها إلى منطقة فرعية معينة. يتضمن الخيار <viewRefreshMode>، كما هو موضَّح في ملف KML التالي، خيار onRegion الذي يحدد تحميل بيانات المنطقة فقط عندما تكون المنطقة نشطة. إذا كنت ستزوّد مناطق متداخلة بمستويات متعددة من التفاصيل، فلن يتم تحميل كميات أكبر من البيانات إلا عندما تبدأ نقطة العرض للمستخدم التحميل التالي. يقدم القسم التالي عن تراكبات مميزة مثالاً مفصلاً.
الجزء الأول: ملف رئيسي
لتشغيل هذا المثال، احفظ الجزء الأول كالمعتاد. احفظ الجزء الثاني باسم romaniaRegion.kml بحيث يتمكن NetworkLink من تحميل المنطقة عندما يصبح نشطًا.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <NetworkLink> <name>romania NetworkLink</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Link> <href>romaniaRegion.kml</href> <viewRefreshMode>onRegion</viewRefreshMode> </Link> </NetworkLink> </Document> </kml>
الجزء الثاني: ملف NetworkLink المستند إلى المنطقة
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>romania Document</name>
<Region>
<LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox>
<Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod>
</Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0
28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark>
</Document>
</kml>
تراكبات مميزة
س: كيف يمكنني مشاركة صورة بحجم 47 ميغابايت مع العالم؟
ج: مقالة واحدة في كل مرة.
السؤال: ماذا يحدث إذا حاول الجميع إجراء ذلك؟
ج: في حال استخدام "روابط الشبكة" المستندة إلى المنطقة وتقديم مستويات متعددة من التفاصيل لصورك كما هو موضّح في هذا البرنامج التعليمي، لا مشكلة.
يصف هذا القسم كيفية إنشاء "تركيب فوقي"؛ وهو عبارة عن تدرج هرمي للمناطق وLinkLinks يمكن استخدامه لعرض مجموعة كبيرة من الصور بفعالية. يتم تحميل مربعات الدقة المناسبة عند عرض أجزاء من منطقة الصور، مع تحميل مربعات عالية الدقة مع اقتراب نقطة العرض. إنه هدر في محاولة عرض صورة بحجم 7008 × 6720 بكسل على شاشة بحجم 1024 × 768 بكسل. والأكثر من ذلك أنه إذا كان المستخدم على بعد أميال عن سطح الأرض، فقد تصبح كل هذه البيانات محشوة بعدد من وحدات البكسل، وسيكون الأداء ضعيفًا. تتيح لك التراكبات المميزة - مثل العينة التي تُظهر 1991 DOQQ في ماونتن فيو - كاليفورنيا، الاستفادة من NetworkLinks وقدرتها على تحديد (1) ما إذا كانت منطقة معينة في نطاق العرض و (2) ما إذا كان حجمها المتوقع مناسبًا لنقطة العرض الحالية. إذا كانت المنطقة "نشطة" (يتم استيفاء الشرطين)، يحمّل NetworkLink البيانات المرتبطة بالمنطقة. إذا لم تكن المنطقة نشطة، فلن يتم تحميل أي بيانات. في حالة تقسيم الصورة الأصلية إلى تدرج هرمي للصور يحتوي على مستويات متزايدة من التفاصيل، يمكن لبرنامج Google Earth تحميل الصور التي تناسب العرض الحالي على أفضل نحو.
لمشاهدة كيفية استخدام العرض الهرمي للصور، حمِّل نموذج الملف هذا إلى Google Earth وجرِّب عن طريق تكبير منطقة الاهتمام وتصغيرها: Mountain View Historial DOQQ.
مثال على استخدام روابط الشبكة المستندة إلى المنطقة لتحميل مجموعة بيانات كبيرة جدًا بكفاءة. يبلغ حجم الصورة الأصلية 7008 × 6720 بكسل. لا يُحمّل العرض المائل المعروض هنا سوى خمسة مربعات صغيرة لتمثيل هذه الصورة. (تمت إضافة الأشرطة البيضاء لإبراز حدود المربعات.) يعرض هذا التطبيق تقديم الصور التاريخية لمدينة ماونتن فيو (1991 DOQQ). |
تجهيز بياناتك لتركيبها الفائق
في نموذج التراكب الفائق، يتم تقسيم صورة ماونتن فيو الأصلية إلى المئات من تراكبات الأرض الصغيرة. ويتم ترتيب هذه التراكبات أو المربعات في تسلسل هرمي يتكون من خمسة مستويات. لأغراض معينة مثلاً، تستخدم المناقشة الواردة هنا تدرجًا هرميًا بسيطًا من ثلاثة مستويات ومجموعة مكوّنة من 21 تراكبًا، ولكن المبادئ نفسها ثابتة. لاحظ أن هذه ليست سوى طريقة واحدة لإنشاء تسلسل هرمي لروابط الشبكة التي تستند إلى المنطقة وأن هناك طرقًا أخرى لتنفيذ هذه الآلية.
لإنشاء تراكب فائق، يلزمك
- إعداد الصور عن طريق التقسيم الفرعي إلى أجزاء قابلة للإدارة (يُوصى بحجم 256 × 256 بكسل)
- أنشئ ملفات KML التي تعمل على إعداد المناطق والروابط وروابط الشبكة، وفي هذه الحالة الملفات التي تحتوي على GroundOverlays.
إعداد الصور
اختر حجمًا قياسيًا لمربعاتك، وهي الصور المقسّمة فرعيًا (بدرجات دقة متباينة) التي يحمّلها Google Earth عندما تصبح المناطق المرتبطة بها نشطة.
على سبيل المثال، سنستخدم مربعاتنا بحجم 256 x 256 بكسل، وهي مساحة صغيرة تكفي إدارتها.
- ابدأ باستخدام الصورة الأصلية ذات الدقة الكاملة. قسِّمها فرعيًا إلى n، ثم قسِّم كل مربع من هذه المربعات إلى n.
استمر في التقسيم الفرعي حتى يكون لديك مربعات بحجم معيّن (في المثال، 256 × 256 بكسل).
لنفترض أن الصورة الأصلية هي 1024 × 1024 بكسل.
ينتج التدرج الهرمي التالي عند إجراء تقسيم فرعي له. - أعد تجميع عينات لكل مربع في العرض الهرمي إلى الحجم القياسي الذي اخترته (على سبيل المثال، 256x256 بكسل).
ستتضمّن هذه المربّعات المُعاد أخذ عينات منها تفاصيل أقل، ولكنها ستقترن بالمناطق النشطة في
نقاط مشاهدة بعيدة جدًا، وبالتالي لن يتمكّن المستخدم من الاطّلاع على التفاصيل بالتفصيل.
يوضح الشكل التوضيحي التالي كيفية تحديد نقطة العرض وتعريف المناطق المتداخلة على المربعات التي يتم تحميلها بالفعل. ويتم تقديم ثلاثة مستويات من التفاصيل لهذه العينة الكبيرة من الصور. عندما ينظر المستخدم إلى المنطقة من أقصى مسافة، يعرض Google Earth عرض الصورة المصغرة. يمتد هذا العرض إلى LatLonAltBox بالكامل (لكن نظرًا لأن الحجم المتوقع صغير - 256 بكسل مربع - لا توجد خسارة فعلية في المعلومات المرئية). عندما يقوم المستخدم بتكبير المشهد، يتم تقسيم المنطقة إلى أربع مناطق. يكون لكل من هذه "المربعات" الأربعة حجم الصورة المصغرة نفسها ولكن يوفر صورًا أكثر تفصيلاً.
إذا استمر المستخدم في تكبير المنطقة، يتم عرض أجزاء من الصور ذات الدقة الكاملة، وذلك بناءً على مدى قرب المستخدم من الانتقال إليها. تحتفظ المناطق البعيدة بالصور الأقل تفصيلاً التي تم تحميلها أولاً. في مثال Mountain View DOQQ، فعِّل "المربّعات" واطّلِع على العلامات الموضعية وB اللتين تستخدمان سلاسل السلاسل حول المناطق وتعرض مستويات متعددة من التدرج الهرمي في وقت واحد.
تجدر الإشارة إلى أن العينة تستخدم القيم نفسها لدائرتي minLodPixels وmaxLodPixels لجميع المناطق (في جميع مستويات التدرج الهرمي). إن جهاز LatLonAltBox هو الذي يحدد مستوى التدرج الهرمي الذي يجب تحميله والمربع(الأقسام) داخل المنطقة.
إعداد ملفات KML
بالنسبة إلى كل صورة، يمكنك إعداد ملف KML يربط التراكب الأرضي بالمنطقة ورابط الشبكة. يحتوي كل ملف KML في هذه المجموعة على العناصر التالية:
- منطقة (باستخدام LatLonAltBox وminLodPixels وmaxLodPixels حتى يتمكن Google Earth من تحديد ما إذا كانت المنطقة نشطة في أي وقت محدد)
- مجموعة من NetworkLinks إلى الملفات الفرعية (المربعات في المستوى التالي من التدرج الهرمي)
- التراكب الأرضي لهذه المنطقة
يعرض هذا النموذج ملف KML ذو المستوى الأعلى لمثال DOQQ على Mountain View. بالنسبة إلى maxLodPixels، تحدد -1، والتي تحمل المعنى الخاص "نشط إلى حجم لا نهائي". وبدون هذه المواصفات، قد لا يتم مطلقًا تشغيل التسلسل الهرمي بالكامل.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>SuperOverlay: MV DOQQ</name>
<Region>
<LatLonAltBox>
<north>37.44140625</north>
<south>37.265625</south>
<east>-121.9921875</east>
<west>-122.16796875</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
</Lod>
</Region>
<Link>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/mv-070501/1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
</kml>
يعرض الملف التالي منطقة في مثال DOQQ على Mountain View (179.kml). يحتوي هذا الملف على خمس علامات href: تشير أربعة إلى ملفات KML الأربعة في المستوى التالي من العرض الهرمي للصورة، بينما تشير إحداها إلى ملف الصورة المستخدَم في Groundoverlay في هذا المربع.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<NetworkLink>
<name>001120</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>180.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001121</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>185.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001122</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>190.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001123</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>195.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<GroundOverlay>
<drawOrder>5</drawOrder>
<Icon>
<href>179.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>
عرض كائنات ثلاثية الأبعاد
في KML 2.1، يمكنك استيراد نماذج ثلاثية الأبعاد - مثل المباني والجسور والآثار والتماثيل - بتنسيق ملف تحويل COLLADA. يتم تحديد النماذج بشكل مستقل عن Google Earth في مكان إحداثياتها الخاص باستخدام تطبيقات مثل SketchUp أو 3D Studio Max أو Softimage XSI أو Maya. عندما يتم استيراد نموذج ثلاثي الأبعاد إلى Google Earth، يتم تحويله وتدويره وتحجيمه ليناسب نظام إحداثيات Earth. يمكن إعادة وضع نماذج النماذج التي تم تحميلها من قبل في Google Earth وتغيير حجمها باستخدام العنصر <تحديث>، وهي ميزة جديدة أخرى في KML 2.1.
نموذج للنماذج
يتم استخدام نموذج في Google Earth مثل أي كائن هندسي آخر (نقطة أو سطر خطي أو مضلع). في ما يلي مثال بسيط على ملف KML يستورد نموذجًا مزخرفًا.
يمكن أن يكون مرجع النموذج رابطًا مطلقًا أو نسبيًا لمواصفات الملف، أو عنوان URL.
لعرض هذا النموذج، حمّل الملف MackyBldg.kmz، وهو أرشيف يحتوي على جميع ملفات الزخارف والتراكبات الضرورية وكذلك ملف doc.kml الذي يحتوي على النموذج:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
<name>SketchUp Model of Macky Auditorium</name>
<description>University of Colorado, Boulder; model created by Noël Nemcik.</description> <LookAt>
<longitude>-105.2727379358738</longitude>
<latitude>40.01000594412381</latitude>
<altitude>0</altitude>
<range>127.2393107680517</range>
<tilt>65.74454495876547</tilt>
<heading>-27.70337734057933</heading> </LookAt> <Model id="model_4">
<altitudeMode>relativeToGround</altitudeMode>
<Location>
<longitude>-105.272774533734</longitude>
<latitude>40.009993372683</latitude>
<altitude>0</altitude>
</Location>
<Orientation>
<heading>0</heading>
<tilt>0</tilt>
<roll>0</roll>
</Orientation>
<Scale>
<x>1</x>
<y>1</y>
<z>1</z>
</Scale>
<Link>
<href>files/CU Macky.dae</href>
</Link>
</Model>
</Placemark>
</kml>
يتم وضع النموذج جغرافيًا باستخدام مواصفات خطوط الطول والعرض والطول لعنصر الموقع الجغرافي. يستخدم هذا المثال القيم الافتراضية لعناصر الاتجاه والمقياس، والتي يتم تضمينها هنا للاكتمال.
يحدد عنصر الاتجاه عمليات تدوير النموذج حول المحاور x (الإمالة) وy (roll) وz (heading). يشير المحور ص إلى الشمال وهو موازٍ لخطوط الطول، والمحور س شرقًا ويوازي خطوط الخطوط. يتم تحديد التدوير بالدرجات، مع التدوير الإيجابي كما هو موضح في الرسم البياني التالي.
إنشاء أرشيف .kmz
أرشيف KMZ هو مجموعة من الملفات المستخدمة لإنشاء عرض تقديمي KML واحد. يتضمن هذا الأرشيف جميع الملفات المحلية المشار إليها في ملف .kml، مثل الصور والزخارف والنماذج. أرشيف KMZ هو حزمة قائمة بذاتها لا يلزم استضافتها على خادم شبكة ويمكن إرسالها بالبريد الإلكتروني وتخزينها بسهولة كوحدة واحدة. يمكن لبرنامج Google Earth قراءة ملفات .kml و.kmz مباشرة.
يتم ضغط ملف doc.kml والملفات المحلية التي يشير إليها في أرشيف باستخدام تنسيق ملف ZIP. يمكن للعديد من التطبيقات إنتاج هذا التنسيق. WinZip على أنظمة تشغيل Windows وSuffit على أنظمة التشغيل Macintosh وZip على أنظمة Linux وMacintosh هي تطبيقات شائعة يمكنها قراءة تنسيق ZIP وكتابته. يمكنك أيضًا العمل باستخدام أرشيفات ZIP باستخدام مستكشف Windows أو Mac Finder مباشرةً.
بعد إنشاء ملف .zip، غيِّر امتداد الملف إلى .kmz.
يحتوي أرشيف KMZ الذي يحتوي على النموذج المزخرف الكامل لمبنى ماكي على الملفات التالية:
- doc.kml - ملف KML الموضح أعلاه، والذي يستورد نموذج COLLADA (.dae) ويضعه في Google Earth. ضع هذا الملف في الدليل الجذري لملف KMZ (ZIP).
- textures.txt - يستخدم لإعادة تعيين مسارات الزخارف في ملف النموذج (هنا، CU Macky.dae) إلى المسارات داخل ملف KMZ. ضع هذا الملف في الدليل الجذري لملف KMZ (ZIP). يحتوي كل زخرفة تتم الإشارة إليها في CU Macky .dae على سطر واحد في textures.txt من النموذج:
<kmz_file_path> <COLLADA_file_path> [<KML_ID_of_model>]<kmz_file_path> هو المسار النسبي داخل أرشيف KMZ المؤدي إلى موضع الزخرفة. يرتبط هذا المسار بـ CU Macky.dae، الموجود في الدليل files/ في أرشيف KMZ. بما أنه يتم تخزين الزخارف في الدليل files/، يجب أن يبدأ <kmz_file_path> بـ ../files/ .
<COLLADA_file_path> هو اسم ملف الزخرفة تمامًا كما يظهر في CU Macky .dae.
[KML_ID] هو رقم تعريف KML للنموذج الذي يستخدم هذه الزخرفة. يمكن استخدام الزخارف بواسطة نماذج متعددة. هذه المعلمة اختيارية.
في ما يلي مقتطف من ملف textures.txt في المثال:
<../files/CU-Macky---Center-StairsnoCulling.jpg> <CU-Macky---Center-StairsnoCulling.jpg> <model_4> <../files/CU-Macky-4sideturretnoCulling.jpg> <CU-Macky-4sideturretnoCulling.jpg> <model_4> <../files/CU-Macky-Back-NorthnoCulling.jpg> <CU-Macky-Back-NorthnoCulling.jpg> <model_4>
- دليل files/ - يحتوي على ملفات COLLADA التي تحدد الأشكال الهندسية والزخارف والمواد المستخدمة في النموذج. في مثال مبنى ماكي، يحتوي هذا الدليل على ملف COLLADA (CU Macky.dae) بالإضافة إلى الملفات المتعددة التي تحتوي على صور JPEG المستخدمة في زخرفة المبنى (CU-Macky-BrickwallnoCulling.jpg، وCU-Macky--Center-StairsnoCulling.jpg، وCU_Macky-EastjpgdoornoCulling on).
يوضح هذا المثال إحدى طرق تنظيم الملفات في أرشيف KMZ. في الواقع، يمكنك ترتيب الملفات بأي بنية تبدو منطقية بالنسبة إليك، تمامًا كما تنظم الملفات في مجلدات أو أدلة على جهاز الكمبيوتر. على سبيل المثال، قد يكون من المفيد وضع جميع الصور في دليل images/. يتم تحديد المراجع النسبية (مثل الملفات المُشار إليها في العنصر <href> المستخدمة في NetworkLink وLink والتراكب/الرمز والنموذج) مقارنةً بملف doc.kml. في حالة تضمين دليل صور، فإن مواصفات <href> لصورك ستكون: images/myBrickTexture.jpg وimages/myMountainoverlay.png وهكذا).
تحديث البيانات المحمَّلة عبر روابط الشبكة
لإجراء تعديل تدريجي على البيانات المحمّلة عبر NetworkLink، استخدم العنصر Update (تحديث)، وهو عنصر فرعي لـ NetworkLinkControl. يمكن أن يحتوي التحديث على أي عدد من عناصر التغيير والإنشاء والحذف التي تتم معالجتها بالترتيب.
يوضح الشكل التالي تسلسل الأحداث.
- يحمّل NetworkLink ملف KML "الأصلي" إلى Google Earth. ويحتاج العنصر الذي يتم تحديثه لاحقًا إلى تحديد id (معرّف) واضح عند تحديده لأول مرة. يجب أن تكون ids فريدة داخل ملف معيّن.
- يحمّل NetworkLink آخر ملف KML ثانٍ يحتوي على التحديثات (أي تركيبة من التغيير والإنشاء والحذف) إلى كائنات KML التي سبق تحميلها. يحتوي ملف التحديث على مرجعين لتحديد بيانات KML الأصلية:
- لتحديد موقع العناصر داخل Google Earth، يستخدم العنصر Update العنصر targetHref لتحديد الملف الأصلي الذي حدد الكائنات المراد تعديلها. لتحديد الكائن أو الكائنات المراد تعديلها أو حاوية الكائنات الجديدة، تحتوي العناصر "التغيير" و"الإنشاء" و"الحذف" على السمة targetId التي تشير إلى ids لتلك الكائنات.
تغيير المثال
يعرض المثال التالي مجموعة من ملفات NetworkLinks وملفات KML. لتشغيل النموذج:
- حمِّل الملف Point-load.kml في Google Earth. يحتوي هذا الملف على NetworkLink الذي يحمّل ملف البيانات الأصلي الذي يحتوي على نقطتين (Point.kml ).
- حمِّل الملف Update-load.kml في Google Earth. يحتوي هذا الملف على NetworkLink الثاني، والذي يحمّل الملف الذي يحتوي على بيانات التحديث (اسم جديد لـ point123).
يحتوي الملف الأول على NetworkLink الذي يحمّل ملف البيانات الذي يحتوي على نقطتين. تشتمل العلامات الموضعية التي تحتوي على هذه النقاط على أرقام تعريف مخصصة لها. ويحتوي الملف الثالث على NetworkLink آخر، والذي يضيف ملف "تحديث". يعدِّل العنصر "تغيير" اسم العلامة الموضعية في point123.
فيما يلي الملفات الأربعة المستخدمة في هذا المثال. أولاً، هذا هو ملف Point-load.kml، الذي يحتوي على NetworkLink الذي يحمّل ملف البيانات الأصلي (Point.kml).
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Loads Point.kml</name>
<Link>
<href>http://developers.google.com/kml/documentation/Point.kml</href>
</Link>
</NetworkLink>
</kml>
في ما يلي ملف Point.kml الذي يحتوي على البيانات الأصلية (نقطتان). النقطة التي تحتوي على المعرف "point123" هي النقطة التي سيتم تعديلها.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<Placemark id="pm123">
<name>point123</name>
<Point> <coordinates>-95.44,40.42,0</coordinates> </Point>
</Placemark> <Placemark id="pm456"> <name>point456</name>
<Point> <coordinates>-95.43,40.42,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
بعد ذلك يكون ملف NetworkLink الثاني (Update-load.kml). يحمّل هذا الملف الملف الذي يحتوي على معلومات التحديث.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Update</name>
<Link>
<href>http://developers.google.com/kml/documentation/NetworkLinkControl-Update.kml</href></Link> </NetworkLink>
</kml>
أخيرًا، إليك ملف KML (NetworkLinkControl-Update.kml) الذي يتضمّن معلومات التحديث:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLinkControl>
<Update>
<targetHref>http://developers.google.com/kml/documentation/Point.kml</targetHref>
<Change>
<Placemark targetId="pm123"> <name>Name changed by Update Change</name>
<!-- coordinates remain the same -->
</Placemark>
</Change> </Update>
</NetworkLinkControl>
</kml>
انتهاء الصلاحية
بشكل افتراضي، يتم تحميل البيانات مرة واحدة فقط بواسطة الروابط إلى Google Earth. لمنع تحول بيانات KML إلى قديمة، يمكنك تحديد refreshMode في onExpire لأي بيانات يتم تحميلها من خلال عنصر <href> (في عنصر رابط أو رمز). تحدّد رؤوس انتهاء صلاحية HTTP وقت انتهاء الصلاحية تلقائيًا. يمكنك الآن أيضًا تحديد وقت انتهاء الصلاحية في KML NetworkLinkControl. يتم التعبير عن الوقت كـ XMLTimeTime (راجع XML Schema Part 2: Datatypes Second Edition). إذا تم تحديد كل من رؤوس HTTP وأوقات انتهاء صلاحية KML، تكون الأولوية لانتهاء صلاحية KML.
مثال 1: انتهاء الصلاحية باستخدام وقت انتهاء صلاحية خادم HTTP
هذا المثال للتوضيح فقط. وتعرض طبقة أرضية لها رمز يضبط refreshMode على onExpire. نظرًا لعدم تعيين وقت انتهاء صلاحية KML، يستخدم هذا المثال وقت انتهاء صلاحية خادم HTTP.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>refreshMode onExpire</name>
<Snippet maxLines="10">
Image automatically reloads according to http
server expiration.
</Snippet>
<GroundOverlay>
<Icon>
<href>http://www.someserver.com/image.jpeg</href>
<refreshMode>onExpire</refreshMode>
</Icon>
<LatLonBox>
<!-- from edit session in earth -->
<!-- The roof of a building in the Presidio -->
<north>37.80385180177469</north>
<east>-122.4558710620651</east>
<south>37.80337403503347</south>
<west>-122.4564295653771</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>
المثال 2: مثال على استخدام وقت انتهاء صلاحية ملف KML
في المثال التالي يتم عرض علامة موضعية بإحداثيات محددة عشوائيًا. يحتوي هذا المثال على رابط يتضمن refreshMode لـ onExpire. في هذه الحالة، يتم تحديد تاريخ/وقت انتهاء الصلاحية (في نص برمجي Python) باستخدام عنصر KML <expires> الجديد. ويكون لوقت انتهاء صلاحية ملف KML هذا الأولوية على أي وقت قد يتم تحديده في عناوين HTTP.
في ما يلي رابط شبكة KML الذي يحتوي على الرابط مع العناصر <href> و<refreshMode>:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<NetworkLink>
<Link>
<href>http://dev.someserver.com/cgi-bin/expires.py</href>
<refreshMode>onExpire</refreshMode>
</Link>
</NetworkLink>
</Document>
</kml>
في ما يلي نص Python البرمجي الذي يضبط وقت انتهاء الصلاحية على [now + 11 seconds] ويحدّث إحداثيات العلامة الموضعية:
#!/usr/bin/python
import random
import time
lat = random.random() * 180. - 90.
lon = random.random() * 360. - 180.
now = time.time()
future = time.gmtime(now + 11)
y = future[0]
mo = future[1]
d = future[2]
h = future[3]
mi = future[4]
s = future[5]
iso8601 = '%04d-%02d-%02dT%02d:%02d:%02dZ' % (y,mo,d,h,mi,s)
print 'Content-type: application/vnd.google-earth.kml+xml'
print '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
print '<kml xmlns=\"http://earth.google.com/kml/2.1\">'
# must be child of <kml>
print '<NetworkLinkControl>'
print '<expires>%s</expires>' % iso8601
print '</NetworkLinkControl>'
print '<Placemark>'
print '<name>placemark expires %s</name>' % iso8601
print '<Point>'
print '<coordinates>%f,%f,0</coordinates>' % (lon,lat)
print '</Point>'
print '</Placemark>'
print '</kml>'
المجلدات ذات العناصر الإذاعية
يمكنك الآن إنشاء مجلدات تحتوي على عناصر بنمط الراديو باستخدام عنصر ListStyle وتحديد listItemType من radioFolder. يوضح المثال التالي هذا الاستخدام لعنصر نمط القائمة الجديد.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>ListStyle radiofolder</name>
<Folder>
<name>radioFolder Folder</name>
<Style>
<ListStyle>
<listItemType>radioFolder</listItemType>
</ListStyle>
</Style>
<Placemark>
<name>north</name>
<Point>
<coordinates>-114,41.79,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>south</name>
<Point>
<coordinates>-114,41.78,0</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>
إليك كيفية عرض لوحة الأماكن لهذا المجلد وعناصره الفرعية: