שכבות KML ו-geoRSS

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

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

סקירה כללית

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

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

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

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

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

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

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

באופן אופציונלי, ה-constructor של KmlLayer() מעביר מספר KmlLayerOptions:

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

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

    לעקוף תמיד קבצים שמורים (לדוגמה, על ידי צירוף מספר אקראי או זמן השעון של המשתמש כפרמטר של שאילתה) יכול לגרום בקלות your מוצפים יותר אם האתר שלכם הופך פתאום לפופולרי, באמצעות קובצי KML גדולים.

    הוא גם עלול לגרום למטמון להציג נתונים לא פעילים למשתמשים, אם יש השעון שגוי, והתג <expires> לא מוגדר כראוי.

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

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

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

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

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

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

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

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

בטבלה הבאה מוצגים הפרטים המלאים של רכיבי ה-KML הנתמכים.

רכיב KML יש תמיכה ב-API? תגובה
&lt;address&gt; לא
&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; באופן חלקי רק <טקסט> נתמך
&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; באופן חלקי untyped <Data> בלבד, לא <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; לא
<latitude> כן
&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> הוא נתמך חלקית. ה-API מתעלם את הגדרות התפוגה בכותרות ה-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; באופן חלקי <קישור> בלבד; לא ב<סמל>
&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" נתמך
&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; כן הוצא משימוש