שכבות KML ו-geoRSS

בחירת פלטפורמה: Android iOS JavaScript

הרכיב KmlLayer מעבד רכיבי KML ו-GeoRSS לשכבת-על של משבצת API של Maps JavaScript.

סקירה כללית

ממשק API של JavaScript במפות Google תומך בפורמטים של נתונים KML ו-GeoRSS להצגת מידע גיאוגרפי. הפורמטים של הנתונים האלה מוצגים במפה באמצעות אובייקט KmlLayer, שהבנאי שלו לוקח את כתובת ה-URL של קובץ KML או GeoRSS שנגיש לציבור.

הערה: המחלקה KmlLayer שיוצרת שכבות-על מסוג KML ב-מפות JavaScript API משתמשת בשירות באירוח Google כדי לאחזר ולנתח קובצי KML לעיבוד. כתוצאה מכך, ניתן להציג קובצי KML רק אם הם מתארחים בכתובת URL נגישה לציבור שלא דורשת אימות כדי לגשת אליה.

אם אתם צריכים גישה לקבצים פרטיים, שליטה פרטנית במטמון או שליחת אזור התצוגה של הדפדפן לשרת נתונים גיאו-מרחביים כפרמטר של שאילתה, מומלץ להשתמש בשכבות נתונים במקום ב-KmlLayer. הפעולה הזו תכוון את הדפדפנים של המשתמשים לבקש משאבים ישירות משרת האינטרנט.

ה-API של JavaScript במפות Google ממיר את נתוני ה-XML הגיאוגרפיים שסופקו לייצוג KML שמוצג במפה באמצעות שכבת-על של אריח Maps JavaScript API. ה-KML נראה (וגם מתנהג במידה מסוימת) כמו רכיבי שכבת-על מוכרים של Maps JavaScript API. רכיבי KML <Placemark> ו-GeoRSS point מעובדים כסמנים. לדוגמה, רכיבי <LineString> מעובדים כקווים מרובים ורכיבי <Polygon> מעובדים כפוליגונים. באופן דומה, רכיבי <GroundOverlay> יוצגו כתמונות מלבניות במפה. חשוב לציין שהאובייקטים האלה הם לא Maps JavaScript API Markers, Polylines, Polygons או GroundOverlays. במקום זאת, הם מעובדים לאובייקט אחד במפה.

KmlLayer אובייקטים מופיעים במפה אחרי שמגדירים את המאפיין map שלהם. אפשר להסיר אותם מהמפה על ידי קריאות ל-setMap() ולמעבר אל null. האובייקט KmlLayer מנהל את הרינדור של רכיבי הצאצא האלה על ידי אחזור אוטומטי של התכונות המתאימות לגבולות הנתונים של המפה. כשהגבולות משתנים, התכונות באזור התצוגה הנוכחי עוברות רינדור באופן אוטומטי.

מאחר שהרכיבים בתוך KmlLayer מעובדים לפי דרישה, השכבה מאפשרת לך לנהל בקלות את הרינדור של אלפי סמנים, קווים פוליגונים ופוליגונים. חשוב לזכור שלא ניתן לגשת ישירות לאובייקטים האלה, אבל כל אחד מהם מספק אירועי קליק שמחזירים נתונים על האובייקטים האלה.

אפשרויות לשכבת KML

ה-builder של 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>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <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 callback 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>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <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 callback 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 באופן ישיר. במקום זאת, התכונות מוצגות, והן נראות כמו שכבות-על ניתנות ללחיצה של Maps JavaScript API. כברירת מחדל, לחיצה על תכונות ספציפיות מעלה InfoWindow שמכיל מידע על KML <title> ו-<description> על התכונה הנתונה. בנוסף, לחיצה על תכונת KML יוצרת KmlMouseEvent שמעביר את המידע הבא:

  • position מציין את הקואורדינטות של קווי האורך/רוחב שבהן ניתן לעגן את InfoWindow עבור תכונת KML הזו. המיקום הזה הוא בדרך כלל המיקום שעליו לוחצים עבור פוליגונים, קווים מרובים ושכבות-על של פני השטח, אבל המקור האמיתי של הסמנים.
  • 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"
}

הדוגמה הבאה מציגה טקסט <Description> של תכונת KML בתוך <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>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <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 callback 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 API יש מגבלות לגודל ולמורכבות של קובצי KML שנטענו. בהמשך מופיע סיכום של המגבלות הנוכחיות.

הערה: המגבלות האלה עשויות להשתנות בכל שלב.

גודל הקובץ המרבי שאותו ניתן לטעון (KML גולמי, GeoRSS גולמי או KMZ דחוס)
3MB
הגודל המרבי של קובץ KML לא דחוס
10MB
הגודל המקסימלי של קובץ תמונה לא דחוסה בקובצי KMZ
500KB לכל קובץ
המספר המרבי של קישורי רשת
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 לפעם אחת בדקה.

    אם הגודל הכולל של כל הקבצים עולה על 1MB (לא דחוס), יש להגביל את השינויים לפעם אחת בכל 5 דקות.
  • כשמשתמשים בשרת נתונים גיאו-מרחביים, כדאי להימנע משימוש בפרמטרים של שאילתה כדי להגביל את אזור התצוגה של השכבות.

    במקום זאת, אפשר להגביל את אזור התצוגה במפה באמצעות האירוע bounds_changed. למשתמשים יישלחו רק תכונות שניתן להציג באופן אוטומטי.

    אם בשרת הנתונים הגאו-מרחביים יש כמות גדולה של נתונים, כדאי להשתמש בשכבות נתונים במקום זאת.
  • כשמשתמשים בשרת נתונים גיאו-מרחבי, צריך להשתמש במספר ערכים של KmlLayer לכל קבוצת תכונות שרוצים לאפשר למשתמשים להחליף ביניהן, במקום בשדה KmlLayer אחד עם פרמטרים שונים של שאילתות.
  • כדי להקטין את גודל הקובץ, צריך להשתמש בקובצי KMZ דחוסים.
  • אם אתם משתמשים ב-Google Cloud Storage או בפתרון אחר לאחסון בענן, עליכם להימנע משימוש בתכונות כמו כתובות URL חתומות או אסימונים זמניים כדי לאכוף את בקרות הגישה. הקבצים האלה עלולים למנוע שמירה במטמון בטעות.
  • הפחתת הדיוק של כל הנקודות לרמת דיוק מתאימה.
  • מיזוג ופשט את הגיאומטריה של תכונות דומות, כמו מצולעים וקווים מרובים.
  • מסירים רכיבים או משאבי תמונות שאינם בשימוש.
  • מסירים רכיבים שאינם נתמכים.

אם אתם צריכים לגשת לנתונים פרטיים, למנוע שמירה במטמון או לשלוח את אזור התצוגה של הדפדפן לשרת נתונים גיאו-מרחביים כפרמטר של שאילתה, מומלץ להשתמש בשכבות נתונים במקום ב-KmlLayer. הפעולה הזו תכוון את הדפדפנים של המשתמשים לבקש משאבים ישירות משרת האינטרנט.

רכיבי KML נתמכים

ממשק ה-API של JavaScript למפות Google תומך ברכיבי ה-KML הבאים. המנתח של KML מתעלם בדרך כלל מתגי XML שהוא לא מבין, ואינו מציג על כך הודעה.

  • סמנים
  • סמלים
  • תיקיות
  • HTML תיאורי - החלפת ישות דרך <BalloonStyle> ו-<text>
  • KMZ (compressed KML, כולל תמונות מצורפות)
  • קווים שבורים ומצולעים
  • סגנונות עבור קווים שבורים ומצולעים, כולל צבע, מילוי ושקיפות
  • קישורי רשת לייבוא נתונים באופן דינמי
  • שכבות על של קרקע ושכבות על להצגה על המסך

הטבלה הבאה מספקת פרטים מלאים של רכיבי ה-KML הנתמכים.

רכיב KML האם יש תמיכה ב-API? תגובה
<address> no
<AddressDetails> no
<Alias> לא רלוונטי אין תמיכה ב-<Model>
<altitude> no
<altitudeMode> no
<atom:author> כן
<atom:link> כן
<atom:name> כן
<BalloonStyle> חלקית יש תמיכה רק ב-<text>
<begin> לא רלוונטי אין תמיכה ב-<TimeSpan>
<bgColor> no
<bottomFov> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<Camera> no
<שינוי> חלקית רק שינויי סגנון נתמכים
<color> חלקית כולל #AABBGGRR ו- #BBGGRR, ללא תמיכה בתכונות <IconStyle>, <ScreenOverlay> ו-<GroundOverlay>
<colorMode> no
<cookie> no
<coordinates> כן
<יצירה> no
<Data> כן
<מחיקה> no
<description> כן מותר להציג תוכן HTML, אבל לעבור תהליך ניקיון כדי להגן עליו מפני מתקפות בדפדפנים שונים. אין תמיכה בהחלפות של ישויות בצורה $[dataName].
<displayMode> no
<displayName> no
<Document> חלקית באופן מרומז, ילדים נתמכים. אין השפעה כצאצאים של תכונות אחרות
<drawOrder> no
<east> כן
<end> לא רלוונטי אין תמיכה ב-<TimeSpan>
<expires> כן לקבלת פרטים, אפשר לעיין בקטע 'סיכום'
<ExtendedData> חלקית אין תמיכה רק ב-<Data> ללא הקלדת, ללא <SimpleData> או ב-<Schema> החלופי, וכן אין תמיכה בהחלפות של ישויות בצורה $[dataName].
<extrude> no
<fill> כן
<flyToView> no
<תיקייה> כן
<geomColor> no הוצא משימוש
<GeometryCollection> no הוצא משימוש
<geomScale> no הוצא משימוש
<gridOrigin> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<GroundOverlay> כן לא ניתן לבצע סיבוב
<h> כן הוצא משימוש
<heading> כן
רמז כן target=... נתמכים
<hotSpot> כן
<href> כן
<httpQuery> no
<Icon> כן לא ניתן לבצע סיבוב
<IconStyle> כן
<ImagePyramid> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<innerBoundaryIs> כן באופן מרומז מהסדר <LinearRing>
<ItemIcon> לא רלוונטי <ListStyle> אינו נתמך
<key> לא רלוונטי אין תמיכה ב-<StyleMap>
<kml> כן
<labelColor> no הוצא משימוש
<LabelStyle> no
<latitude> כן
<LatLonAltBox> כן
<LatLonBox> כן
<leftFov> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<LinearRing> כן
<LineString> כן
<LineStyle> כן
<Link> כן
<linkDescription> no
<linkName> no
<linkSnippet> no
<listItemType> לא רלוונטי <ListStyle> אינו נתמך
<ListStyle> no
<מיקום> לא רלוונטי אין תמיכה ב-<Model>
<Lod> כן
<longitude> כן
<LookAt> no
<maxAltitude> כן
<maxFadeExtent> כן
<maxHeight> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<maxLodPixels> כן
<maxSessionLength> no
<maxWidth> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<message> no
<Metadata> no הוצא משימוש
<minAltitude> כן
<minFadeExtent> כן
<minLodPixels> כן
<minRefreshPeriod> no <NetworkLink>
<דגם> no
<MultiGeometry> חלקית מוצגות אבל מוצגות כתכונות נפרדות בחלונית הצדדית השמאלית
<name> כן
<ליד> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<NetworkLink> כן  
<NetworkLinkControl> חלקית ב-<Update> וב-<expires> יש תמיכה חלקית. ממשק ה-API מתעלם מהגדרות התפוגה בכותרות ה-HTTP, אבל משתמש בהגדרות התפוגה שצוינו ב-KML. אם לא חלות הגדרות תפוגה, או במסגרת פרק הזמן של תוקף הזמן, ייתכן שלמפות Google יש קובץ שמור של נתונים שאוחזרו מהאינטרנט לפרקי זמן שלא צוינו. ניתן לאלץ שליפה מחדש של הנתונים מהאינטרנט על ידי שינוי שם המסמך ואחזור שלו תחת כתובת אתר אחרת, או על ידי בדיקה שהמסמך מכיל הגדרות תפוגה מתאימות.
<north> כן
<open> כן
<Orientation> לא רלוונטי אין תמיכה ב-<Model>
<outerBoundaryIs> כן באופן מרומז מהסדר <LinearRing>
<outline> כן
<overlayXY> no
<Pair> לא רלוונטי אין תמיכה ב-<StyleMap>
<phoneNumber> no
<PhotoOverlay> no
<Placemark> כן
<Point> כן
<Polygon> כן
<PolyStyle> כן
<range> כן
<refreshInterval> חלקית <Link> בלבד; לא ב <סמל>
<refreshMode> כן אין תמיכה בכותרות HTTP במצב 'onExpire'. ניתן לעיין בהערות לגבי <Update> ו-<expires> למעלה.
<refreshVisibility> no
<Region> כן
<ResourceMap> לא רלוונטי אין תמיכה ב-<Model>
<rightFov> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<roll> לא רלוונטי אין תמיכה ב<מצלמה> וב <דגם>
<rotation> no
<rotationXY> no
<קנה מידה> לא רלוונטי אין תמיכה ב-<Model>
<scale> no
<Schema> no
<SchemaData> no
<ScreenOverlay> כן לא ניתן לבצע סיבוב
<screenXY> no
<shape> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<SimpleData> לא רלוונטי אין תמיכה ב-<SchemaData>
<SimpleField> לא רלוונטי המאפיינים <Schema> אינם נתמכים
<size> כן
<Snippet> כן
<south> כן
<state> לא רלוונטי <ListStyle> אינו נתמך
<Style> כן
<StyleMap> no אין תמיכה באפקטים של גלילת עכבר (הדגשה)
<styleUrl> לא רלוונטי אין תמיכה ב-<StyleMap>
<targetHref> חלקית נתמך ב-<Update>, לא ב-<Alias>
<tessellate> no
<text> כן אין תמיכה בהחלפה של $[geDirections]
<textColor> no
<tileSize> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<tilt> no
<TimeSpan> no
<TimeStamp> no
<topFov> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<עדכון> חלקית רק שינויים בסגנון, ולא <יצירה> או <Delete>
<Url> כן הוצא משימוש
<value> כן
<viewBoundScale> no
<viewFormat> no
<viewRefreshMode> חלקית "onStop" נתמך
<viewRefreshTime> כן
<ViewVolume> לא רלוונטי אין תמיכה ב-<PhotoOverlay>
<visibility> חלקית yes on <Folder> – סמנים של צאצאים יורשים את הרשאות הגישה שלהם
<w> כן הוצא משימוש
<west> כן
<when> לא רלוונטי אין תמיכה ב-<TimeStamp>
<width> כן
<x> כן הוצא משימוש
<y> כן הוצא משימוש