طبقات KML وGeoRSS

اختيار النظام الأساسي: نظام التشغيل Android iOS JavaScript

تعرض KmlLayer عناصر KML وGeoRSS في شكل تراكب مربّعات واجهة برمجة تطبيقات JavaScript للخرائط

نظرة عامة

تتوافق واجهة برمجة تطبيقات JavaScript للخرائط مع تنسيقات بيانات KML وGeoRSS لعرض المعلومات الجغرافية يتم عرض تنسيقات البيانات هذه على باستخدام كائن KmlLayer، تأخذ دالته الإنشائية عنوان URL ملف KML أو GeoRSS متاح للجميع.

ملاحظة: الفئة KmlLayer التي إنشاء طبقات KML في واجهة برمجة تطبيقات JavaScript للخرائط خدمة تستضيفها Google لاسترداد ملفات KML وتحليلها من أجل عرضها. وبالتالي، لا يمكن عرض ملفات KML إلا إذا كانت مستضافة على عنوان URL متاح للجميع ولا يتطلب المصادقة للوصول إليه.

إذا كنت بحاجة إلى الوصول إلى ملفات خاصة، أو حتى التحكم الدقيق في ذاكرات التخزين المؤقت إرسال إطار عرض المتصفح إلى خادم بيانات جغرافية مكانية كمعلمة طلب بحث، ننصح باستخدام البيانات طبقات بدلاً من KmlLayer. سيؤدي هذا إلى توجيه زيارات المستخدمين المتصفحات لطلب الموارد مباشرة من خادم الويب.

تعمل واجهة برمجة تطبيقات JavaScript للخرائط على تحويل المواقع الجغرافية بيانات XML إلى تمثيل KML يتم عرضه على الخريطة باستخدام تراكب مربّعات واجهة برمجة تطبيقات JavaScript للخرائط يبدو ملف KML هذا (ويتصرف نوعًا ما) مثل واجهة برمجة تطبيقات JavaScript المألوفة للخرائط وعناصر التراكب. KML <Placemark> وGeoRSS point كعلامات، فعلى سبيل المثال، عناصر <LineString> هي التي يتم عرضها على شكل خطوط متعددة، كما يتم عرض عناصر <Polygon> على شكل مضلّعات. وبالمثل، فإن عناصر <GroundOverlay> كصور مستطيلة على الخريطة. ومع ذلك، من المهم أن تكون هذه الكائنات ليست واجهة برمجة تطبيقات JavaScript للخرائط Markers، Polylines أو Polygons أو GroundOverlays وبدلاً من ذلك، يتم عرضها في كائن واحد على الخريطة.

تظهر KmlLayer عناصر على الخريطة بعد map. تم تعيين خاصيته. يمكنك إزالتها من الخريطة عن طريق الاتصال تم تجاوز setMap() مسافة null. KmlLayer عرض هذه العناصر الفرعية عن طريق استرداد الخصائص المناسبة لحدود الخريطة. نظرًا لأن العمود تتغير الحدود، يتم تلقائيًا تغيير العناصر في إطار العرض الحالي المعروضة.

ولأنّ المكوّنات ضمن KmlLayer يتم عرضها عند الطلب، تتيح لك الطبقة إدارة عرض الآلاف من العلامات بسهولة، والخطوط المتعددة والمضلّعات. تجدر الإشارة إلى أنه لا يمكنك الوصول إلى هذه الأقسام مباشرةً، على الرغم من أن كل منها يقدم أحداث النقر التي تعرض بيانات هذه الكائنات الفردية.

خيارات طبقة KML

تمرر الدالة الإنشائية KmlLayer() بشكل اختياري عددًا من KmlLayerOptions:

  • map يحدد Map الذي سيتم عرض KmlLayer يمكنك إخفاء KmlLayer من خلال ضبط هذا الإعداد إلى null ضمن طريقة setMap().
  • preserveViewport يحدد أنه يجب عدم عرض الخريطة يتم تعديلها بما يتناسب مع حدود محتوى KmlLayer في حال لعرض الطبقة. بشكل تلقائي، عند عرض KmlLayer، تكبير الخريطة وتحديد موضعها لإظهار مساحة هيكل الطبقة المحتوى.
  • تشير suppressInfoWindows إلى أن الميزات القابلة للنقر داخل يجب ألا يؤدي KmlLayer إلى عرض InfoWindow عناصر

بالإضافة إلى ذلك، عند عرض KmlLayer، تحتوي على خاصية metadata غير قابلة للتغيير تحتوي على اسم الطبقة، الوصف والمقتطف والمؤلف داخل كائن KmlLayerMetadata حرفية. يمكنك فحص هذه المعلومات باستخدام getMetadata() . لأنّ عرض عناصر KmlLayer يتطلب هو الاتصال غير المتزامن إلى خادم خارجي، فأنت بحاجة إلى الاستماع الحدث metadata_changed، والذي سيشير إلى أنّ السمة تمت تعبئة.

ينشئ المثال التالي KmlLayer من العنصر المحدد خلاصة GeoRSS:

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: { lat: 49.496675, lng: -102.65625 },
    }
  );

  const georssLayer = new google.maps.KmlLayer({
    url:
      "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss",
  });
  georssLayer.setMap(map);
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: { lat: 49.496675, lng: -102.65625 },
  });
  const georssLayer = new google.maps.KmlLayer({
    url: "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss",
  });

  georssLayer.setMap(map);
}

window.initMap = initMap;

CSS

/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

HTML

<html>
  <head>
    <title>GeoRSS Layers</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the script to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises. See
      https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

تجربة "عيّنة"

ينشئ المثال التالي KmlLayer من ملف KML المحدّد. الخلاصة:

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 11,
      center: { lat: 41.876, lng: -87.624 },
    }
  );

  const ctaLayer = new google.maps.KmlLayer({
    url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml",
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 11,
    center: { lat: 41.876, lng: -87.624 },
  });
  const ctaLayer = new google.maps.KmlLayer({
    url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml",
    map: map,
  });
}

window.initMap = initMap;

CSS

/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

HTML

<html>
  <head>
    <title>KML Layers</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the script to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises. See
      https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

تجربة "عيّنة"

تفاصيل ميزات KML

نظرًا لأن KML قد يشتمل على عدد كبير من الميزات، قد لا تتمكن من الوصول تتضمّن البيانات من عنصر KmlLayer مباشرةً. بدلاً من ذلك، ميزات مختلفة، يتم عرضها لتبدو كأنها قابلة للنقر تراكبات API للخرائط يؤدي النقر على كل ميزة على حدة تلقائيًا إلى إظهار InfoWindow يحتوي على KML <title> و <description> من المعلومات حول الميزة المحددة. فضلاً عن ذلك، تؤدي النقرة على ميزة KML إلى إنشاء KmlMouseEvent، الذي يجتاز المعلومات التالية:

  • تشير position إلى إحداثيات خط العرض/خط الطول في لتحديد InfoWindow لميزة KML هذه. هذا النمط بشكل عام هو الموقع الذي تم النقر عليه للمضلّعات والخطوط المتعددة GroundOverlays، ولكن المصدر الحقيقي للعلامات.
  • تشير القيمة pixelOffset إلى الإزاحة من أعلاه. position لتثبيت InfoWindow ذَيْل بالنسبة للأجسام المضلعة، تكون هذه الإزاحة عادةً 0,0 لكن بالنسبة إلى العلامات، يتضمن ارتفاع العلامة.
  • يحتوي featureData على بنية JSON KmlFeatureData

في ما يلي نموذج عنصر KmlFeatureData:

{
  author: {
    email: "nobody@google.com",
    name: "Mr Nobody",
    uri: "http://example.com"
  },
  description: "description",
  id: "id",
  infoWindowHtml: "html",
  name: "name",
  snippet: "snippet"
}

يعرض المثال التالي ميزة KML <Description>. نص ضمن جانب <div> عند النقر على الميزة:

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 12,
      center: { lat: 37.06, lng: -95.68 },
    }
  );

  const kmlLayer = new google.maps.KmlLayer({
    url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml",
    suppressInfoWindows: true,
    map: map,
  });

  kmlLayer.addListener("click", (kmlEvent) => {
    const text = kmlEvent.featureData.description;

    showInContentWindow(text);
  });

  function showInContentWindow(text: string) {
    const sidebar = document.getElementById("sidebar") as HTMLElement;

    sidebar.innerHTML = text;
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 12,
    center: { lat: 37.06, lng: -95.68 },
  });
  const kmlLayer = new google.maps.KmlLayer({
    url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml",
    suppressInfoWindows: true,
    map: map,
  });

  kmlLayer.addListener("click", (kmlEvent) => {
    const text = kmlEvent.featureData.description;

    showInContentWindow(text);
  });

  function showInContentWindow(text) {
    const sidebar = document.getElementById("sidebar");

    sidebar.innerHTML = text;
  }
}

window.initMap = initMap;

CSS

/* Optional: Makes the sample page fill the window. */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#container {
  height: 100%;
  display: flex;
}

#sidebar {
  flex-basis: 15rem;
  flex-grow: 1;
  padding: 1rem;
  max-width: 30rem;
  height: 100%;
  box-sizing: border-box;
  overflow: auto;
}

#map {
  flex-basis: 0;
  flex-grow: 4;
  height: 100%;
}

HTML

<html>
  <head>
    <title>KML Feature Details</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="container">
      <div id="map"></div>
      <div id="sidebar"></div>
    </div>

    <!-- 
      The `defer` attribute causes the script to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises. See
      https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

تجربة "عيّنة"

قيود الحجم والتعقيد لعرض KML

تفرض واجهة برمجة تطبيقات JavaScript للخرائط قيودًا على حجم مدى تعقيد ملفات KML التي تم تحميلها. في ما يلي ملخّص للحدود الحالية.

ملاحظة: تخضع هذه الحدود للتغيير في أي وقت الوقت.

جلب الحد الأقصى من حجم الملف (KML غير منسق، أو GeoRSS غير منسق، أو KMZ مضغوط)
3 ميغابايت
الحد الأقصى لحجم ملف KML غير مضغوط
10 ميغابايت
الحد الأقصى لحجم ملف الصور غير المضغوط في ملفات KMZ
500 كيلوبايت لكل ملف
الحد الأقصى لعدد روابط الشبكة
10
الحد الأقصى للعدد الإجمالي للميزات على مستوى المستند بأكمله
1,000
عدد طبقات KML
هناك حد لعدد طبقات KML التي يمكن على خريطة Google واحدة. إذا تجاوزت هذا الحد، لن تكون ستظهر الطبقات على الخريطة، وسيتم الإبلاغ عن خطأ في الويب وحدة تحكم JavaScript في المتصفح. ويستند هذا الحدّ إلى تركيبة من عدد الصفوف التي تم إنشاؤها (KmlLayer) وإجمالي مدة جميع عناوين URL المستخدمة لإنشاء تلك الطبقات. كل KmlLayer جديد التي تنشئها ستستهلك جزءًا من حد الطبقة جزء إضافي من الحد اعتمادًا على طول عنوان URL، حيث تم تحميل ملف KML من. وبالتالي، يكون عدد الطبقات التي يمكنك إضافتها تختلف حسب التطبيق؛ في المتوسط، يجب أن تتمكن من التحميل بين 10 و20 طبقة بدون الوصول إلى الحد الأقصى. إذا كنت لا تزال تصل إلى الحد الأقصى، استخدام أداة تقصير عنوان URL لتقصير عناوين URL لملفات KML. بدلاً من ذلك، يمكنك إنشاء ملف KML واحد يتكون من NetworkLinks إلى عناوين URL الفردية لملفات KML.

اعتبارات الأداء والتخزين المؤقت

ستخزِّن خوادم Google ملفات KML مؤقتًا لتقليل الحِمل على الخوادم. سيؤدي ذلك أيضًا إلى تحسين الأداء للمستخدمين من خلال عرض موفر للمساحة للأجزاء المناسبة في ملف KML، كما ينقر المستخدمون على الخريطة وتحريكها وتكبيرها أو تصغيرها.

لتحقيق أفضل أداء، ننصحك بما يلي:

  • استخدِم علامة <expires> مناسبة في KML.

    لن يستخدم KmlLayer عناوين HTTP عند تحديد كيفية لتخزين ملفات KML.
  • عدم إنشاء الملفات ديناميكيًا في وقت الطلب

    بدلاً من ذلك، يمكنك إنشاء الملفات قبل الحاجة إليها وعرضها بشكل ثابت. إذا استغرق الخادم وقتًا طويلاً لنقل ملف KML ، فقد لا يتم عرض KmlLayer.
  • لا تحاول تجاوز ذاكرات التخزين المؤقت ما لم تكن متأكدًا أن تم تحديث الملف.

    دائمًا ما يكون تجاوز ذاكرات التخزين المؤقت (على سبيل المثال، من خلال إلحاق رقم عشوائي أو وقت ساعة المستخدم كمعلمة طلب البحث) يمكن أن يتسبب بسهولة في أن لا زيادة عبء استخدام الخوادم إذا ازداد شهرة موقعك فجأة، تعرض ملفات KML كبيرة.

    ويمكن أن يتسبب ذلك أيضًا في عرض ذاكرة التخزين المؤقت للبيانات القديمة للمستخدمين، إذا كان الساعة غير صحيحة، ولم يتم تحديد العلامة <expires> بشكل صحيح.

    بدلاً من ذلك، انشر ملفات ثابتة محدثة برقم مراجعة جديد ومنفصل، واستخدام رمز من جهة الخادم لإجراء تعديل ديناميكي لعنوان URL الذي تم تمريره إلى KmlLayer بالإصدار الحالي.
  • تحديد التغييرات على ملفات KML لتكون مرة واحدة في الدقيقة.

    إذا كان حجم كل الملفات يزيد عن 1 ميغابايت (غير مضغوطة)، يمكنك تقييد التغييرات على مرة كل 5 دقائق.
  • عند استخدام خادم بيانات جغرافية مكانية، تجنَّب استخدام مَعلمات طلب البحث تقييد إطار عرض الطبقات.

    بدلاً من ذلك، يمكنك تحديد إطار عرض الخريطة من خلال حدث bounds_changed. سيتم إرسال الميزات التي تلقائيًا.

    إذا كان هناك قدر كبير من البيانات في خادم البيانات الجغرافية المكانية، استخدام طبقات البيانات بدلاً من ذلك.
  • عند استخدام خادم بيانات جغرافية مكانية، يمكنك استخدام عدة KmlLayer. لكل مجموعة من الميزات ترغب في السماح للمستخدمين بالتبديل بينها، بدلاً من من قيمة KmlLayer واحدة بمعلَمات طلب بحث مختلفة.
  • يمكنك استخدام ملفات KMZ المضغوطة لتقليل حجم الملفات.
  • إذا كنت تستخدم خدمة Google Cloud Storage أو خدمة أخرى للتخزين في السحابة الإلكترونية، تجنب استخدام ميزات مثل عناوين URL الموقَّعة أو الرموز المميّزة المؤقتة لفرض عناصر التحكّم في الوصول يمكن أن منع التخزين المؤقت بدون قصد.
  • قلّل دقة جميع النقاط إلى بالدقة المناسبة.
  • دمج الأشكال الهندسية لخصائص متشابهة وتبسيطها، مثل المضلّعات والخطوط المتعددة.
  • أزِل أي عناصر أو موارد صور غير مستخدَمة.
  • أزِل أي عناصر غير متوافقة.

إذا كنت بحاجة إلى الوصول إلى بيانات خاصة، أو منع التخزين المؤقت، أو إرسال المتصفح إطار العرض إلى خادم بيانات جغرافية مكانية كمعلمة طلب البحث، نوصي باستخدام طبقات بيانات بدلاً من KmlLayer سيؤدي هذا إلى توجيه زيارات المستخدمين المتصفحات إلى لطلب الموارد من خادم الويب.

عناصر KML المتوافقة

تدعم واجهة برمجة تطبيقات JavaScript للخرائط عناصر KML التالية. يتجاهل المحلل اللغوي لـ KML عادة علامات XML التي لا يفهمها.

  • علامات موضعية
  • الرموز
  • المجلدات
  • HTML وصفي: استبدال الكيان عبر <BalloonStyle> أو &lt;text&gt;
  • KMZ‏ (KML مضغوط، بما في ذلك الصور المرفقة)
  • الخطوط المتعددة والمضلعات
  • نمط الخطوط المتعددة والمضلعات، بما في ذلك اللون، والتعبئة، والتعتيم
  • روابط الشبكة لاستيراد البيانات ديناميكيًا
  • تراكبات الأرض وتراكبات الشاشة

يقدم الجدول التالي تفاصيل كاملة عن عناصر KML المتوافقة.

عنصر KML متوافق مع واجهة برمجة التطبيقات؟ تعليق
<address> لا
&lt;AddressDetails&gt; لا
&lt;Alias&gt; لا ينطبق &lt;Model&gt; غير متاح
&lt;altitude&gt; لا
&lt;altitudeMode&gt; لا
&lt;atom:author&gt; نعم
&lt;atom:link&gt; نعم
&lt;atom:name&gt; نعم
&lt;BalloonStyle&gt; جزئيًا فقط <text> متاح
&lt;begin&gt; لا ينطبق &lt;TimeSpan&gt; غير متاح
&lt;bgColor&gt; لا
&lt;bottomFov&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;Camera&gt; لا
&lt;Change&gt; جزئيًا يُسمح فقط بتغييرات النمط
&lt;color&gt; جزئيًا تتضمن AABBGGRR و#BBGGRR. غير مدعومة في <IconStyle>، <screenOverlay> و<GroundOverlay>
&lt;colorMode&gt; لا
&lt;cookie&gt; لا
&lt;coordinates&gt; نعم
&lt;Create&gt; لا
&lt;Data&gt; نعم
&lt;Delete&gt; لا
&lt;description&gt; نعم يُسمح بمحتوى HTML ولكن يتم تنقيحه لحمايته من المتصفحات العابرة الهجمات. استبدال الكيانات بالنموذج $[dataName] غير مدعومة.
&lt;displayMode&gt; لا
&lt;displayName&gt; لا
&lt;Document&gt; جزئيًا يتم دعم الأطفال ضمنيًا لا تأثير له كعنصر فرعي الميزات
&lt;drawOrder&gt; لا
&lt;east&gt; نعم
&lt;end&gt; لا ينطبق &lt;TimeSpan&gt; غير متاح
&lt;expires&gt; نعم راجِع قسم "الملخّص" للحصول على التفاصيل.
&lt;ExtendedData&gt; جزئيًا <البيانات> غير المكتوبة فقط، لا يتم استخدام <SimpleData> أو <Schema>، لا يتم استبدال بدائل الكيان للنموذج $[dataName]
&lt;extrude&gt; لا
&lt;fill&gt; نعم
&lt;flyToView&gt; لا
&lt;Folder&gt; نعم
&lt;geomColor&gt; لا متوقفة نهائيًا
&lt;GeometryCollection&gt; لا متوقفة نهائيًا
&lt;geomScale&gt; لا متوقفة نهائيًا
&lt;gridOrigin&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;GroundOverlay&gt; نعم لا يمكن تدوير
&lt;h&gt; نعم متوقفة نهائيًا
&lt;heading&gt; نعم
تلميح نعم target=... متوافق
&lt;hotSpot&gt; نعم
&lt;href&gt; نعم
&lt;httpQuery&gt; لا
&lt;Icon&gt; نعم لا يمكن تدوير
&lt;IconStyle&gt; نعم
&lt;ImagePyramid&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;innerBoundaryIs&gt; نعم ضمنيًا من <LinearRing> طلب
&lt;ItemIcon&gt; لا ينطبق &lt;ListStyle&gt; غير متاح
&lt;key&gt; لا ينطبق &lt;StyleMap&gt; غير متاح
&lt;kml&gt; نعم
&lt;labelColor&gt; لا متوقفة نهائيًا
&lt;LabelStyle&gt; لا
<خط العرض> نعم
&lt;LatLonAltBox&gt; نعم
&lt;LatLonBox&gt; نعم
&lt;leftFov&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;LinearRing&gt; نعم
&lt;LineString&gt; نعم
&lt;LineStyle&gt; نعم
<الرابط> نعم
&lt;linkDescription&gt; لا
&lt;linkName&gt; لا
&lt;linkSnippet&gt; لا
&lt;listItemType&gt; لا ينطبق &lt;ListStyle&gt; غير متاح
&lt;ListStyle&gt; لا
&lt;Location&gt; لا ينطبق &lt;Model&gt; غير متاح
&lt;Lod&gt; نعم
<longitude> نعم
&lt;LookAt&gt; لا
&lt;maxAltitude&gt; نعم
&lt;maxFadeExtent&gt; نعم
&lt;maxHeight&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;maxLodPixels&gt; نعم
&lt;maxSessionLength&gt; لا
&lt;maxWidth&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
<message> لا
<Metadata> لا متوقفة نهائيًا
&lt;minAltitude&gt; نعم
&lt;minFadeExtent&gt; نعم
&lt;minLodPixels&gt; نعم
&lt;minRefreshPeriod&gt; لا &lt;NetworkLink&gt;
&lt;Model&gt; لا
&lt;MultiGeometry&gt; جزئيًا ولكن تظهر كعناصر منفصلة على الجانب الأيسر لوحة
&lt;name&gt; نعم
&lt;near&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;NetworkLink&gt; نعم  
&lt;NetworkLinkControl&gt; جزئيًا <تحديث> و<expires> مدعوم جزئيًا. تتجاهل واجهة برمجة التطبيقات إعدادات انتهاء الصلاحية في عناوين HTTP ولكنها تستخدم تاريخ انتهاء الصلاحية الإعدادات المحددة في KML. في حال عدم تحديد إعدادات انتهاء الصلاحية خلال الفاصل الزمني للصلاحية، قد تخزّن "خرائط Google" البيانات المأخوذة من الإنترنت لفترات غير محددة. إعادة جلب البيانات من يمكن فرض الاتصال بالإنترنت من خلال إعادة تسمية المستند وجلبه ضمن عنوان URL مختلف، أو من خلال التأكد من احتواء المستند على إعدادات انتهاء الصلاحية.
&lt;north&gt; نعم
&lt;open&gt; نعم
<الاتجاه> لا ينطبق &lt;Model&gt; غير متاح
&lt;outerBoundaryIs&gt; نعم ضمنيًا من <LinearRing> طلب
&lt;outline&gt; نعم
&lt;overlayXY&gt; لا
&lt;Pair&gt; لا ينطبق &lt;StyleMap&gt; غير متاح
&lt;phoneNumber&gt; لا
&lt;PhotoOverlay&gt; لا
<علامة موضعية> نعم
&lt;Point&gt; نعم
&lt;Polygon&gt; نعم
&lt;PolyStyle&gt; نعم
&lt;range&gt; نعم
&lt;refreshInterval&gt; جزئيًا <الرابط> فقط؛ ليست في <Icon>
&lt;refreshMode&gt; نعم عناوين HTTP غير متوافقة مع "onExpire" الحالي. الاطّلاع على الملاحظات حول <تحديث> و<expires> أعلاه.
&lt;refreshVisibility&gt; لا
&lt;Region&gt; نعم
&lt;ResourceMap&gt; لا ينطبق &lt;Model&gt; غير متاح
&lt;rightFov&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;roll&gt; لا ينطبق &lt;Camera&gt; و<Model> غير متاحة
&lt;rotation&gt; لا
&lt;rotationXY&gt; لا
&lt;Scale&gt; لا ينطبق &lt;Model&gt; غير متاح
&lt;scale&gt; لا
&lt;Schema&gt; لا
&lt;SchemaData&gt; لا
&lt;ScreenOverlay&gt; نعم لا يمكن تدوير
&lt;screenXY&gt; لا
&lt;shape&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;SimpleData&gt; لا ينطبق &lt;SchemaData&gt; غير متاحة
&lt;SimpleField&gt; لا ينطبق &lt;Schema&gt; غير متاحة
&lt;size&gt; نعم
&lt;Snippet&gt; نعم
&lt;south&gt; نعم
&lt;state&gt; لا ينطبق &lt;ListStyle&gt; غير متاح
&lt;Style&gt; نعم
&lt;StyleMap&gt; لا لا يمكن استخدام تأثيرات التمرير (التمييز)
&lt;styleUrl&gt; لا ينطبق &lt;StyleMap&gt; غير متاح
&lt;targetHref&gt; جزئيًا متاحة في <Update>، وليس في <Alias>.
&lt;tessellate&gt; لا
&lt;text&gt; نعم لا يمكن استبدال $[geDirections]
&lt;textColor&gt; لا
&lt;tileSize&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;tilt&gt; لا
&lt;TimeSpan&gt; لا
&lt;TimeStamp&gt; لا
&lt;topFov&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
<تحديث> جزئيًا تغييرات النمط فقط، وليس <إنشاء> أو <Delete>
&lt;Url&gt; نعم متوقفة نهائيًا
&lt;value&gt; نعم
&lt;viewBoundScale&gt; لا
&lt;viewFormat&gt; لا
&lt;viewRefreshMode&gt; جزئيًا OnStop ("onStop") متاح
&lt;viewRefreshTime&gt; نعم
&lt;ViewVolume&gt; لا ينطبق &lt;PhotoOverlay&gt; غير متاح
&lt;visibility&gt; جزئيًا نعم على <مجلد> - تكتسب العلامات الموضعية الفرعية نطاق ظهور العلامة التجارية
&lt;w&gt; نعم متوقفة نهائيًا
&lt;west&gt; نعم
&lt;when&gt; لا ينطبق &lt;TimeStamp&gt; غير متاح
&lt;width&gt; نعم
&lt;x&gt; نعم متوقفة نهائيًا
&lt;y&gt; نعم متوقفة نهائيًا