KML और GeoRSS लेयर

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

KmlLayer, KML और GeoRSS एलिमेंट को Maps JavaScript API टाइल ओवरले में रेंडर करता है.

खास जानकारी

Maps JavaScript API, भौगोलिक जानकारी दिखाने के लिए KML और GeoRSS डेटा फ़ॉर्मैट का इस्तेमाल करता है. ये डेटा फ़ॉर्मैट, मैप पर KmlLayer ऑब्जेक्ट का इस्तेमाल करके दिखाए जाते हैं. इस ऑब्जेक्ट का कंस्ट्रक्टर, सार्वजनिक तौर पर ऐक्सेस की जा सकने वाली KML या GeoRSS फ़ाइल का यूआरएल लेता है.

ध्यान दें: Maps JavaScript API में KML ओवरले जनरेट करने वाली KmlLayer क्लास Google की होस्ट की गई सेवा का इस्तेमाल करती है, ताकि रेंडरिंग के लिए KML फ़ाइलों को वापस लाया जा सके और उन्हें पार्स किया जा सके. ऐसे में, KML फ़ाइलें सिर्फ़ तब दिखाई जा सकती हैं, जब उन्हें सार्वजनिक तौर पर ऐक्सेस किए जा सकने वाले ऐसे यूआरएल पर होस्ट किया गया हो जिसे ऐक्सेस करने के लिए पुष्टि करने की ज़रूरत न हो.

अगर आपको निजी फ़ाइलों का ऐक्सेस चाहिए, कैश मेमोरी पर बेहतर कंट्रोल चाहिए या ब्राउज़र के व्यूपोर्ट को क्वेरी पैरामीटर के तौर पर जियोस्पेशियल डेटा सर्वर पर भेजें, तो हम KmlLayer के बजाय डेटा लेयर इस्तेमाल करने का सुझाव देते हैं. इससे लोगों के ब्राउज़र, सीधे आपके वेब सर्वर से रिसॉर्स का अनुरोध करने के लिए चले जाएंगे.

Maps JavaScript API, दिए गए भौगोलिक एक्सएमएल डेटा को KML फ़ॉर्मैट में बदल देता है. इसे Maps JavaScript API टाइल ओवरले का इस्तेमाल करके, मैप पर दिखाया जाता है. यह KML, Maps के JavaScript API ओवरले एलिमेंट की तरह दिखता है और कुछ हद तक काम करता है. KML <Placemark> और GeoRSS point एलिमेंट को मार्कर के तौर पर रेंडर किया जाता है. उदाहरण के लिए, <LineString> एलिमेंट को पॉलीलाइन के तौर पर और <Polygon> एलिमेंट को पॉलीगॉन के तौर पर रेंडर किया जाता है. इसी तरह, <GroundOverlay> एलिमेंट को मैप पर आयताकार इमेज के रूप में रेंडर किया जाता है. हालांकि, ये ऑब्जेक्ट Maps JavaScript API Markers, Polylines, Polygons या GroundOverlays नहीं हैं. इसके बजाय, इन्हें मैप पर एक ही ऑब्जेक्ट में रेंडर किया जाता है.

map प्रॉपर्टी सेट हो जाने के बाद, मैप पर KmlLayer ऑब्जेक्ट दिखते हैं. setMap() पास करने के लिए null पर कॉल करके, उन्हें मैप से हटाया जा सकता है. KmlLayer ऑब्जेक्ट, इन चाइल्ड एलिमेंट की रेंडरिंग को अपने-आप मैनेज करता है. ऐसा करने के लिए, यह मैप पर दी गई सीमाओं के हिसाब से, सही सुविधाओं को अपने-आप हासिल कर लेता है. सीमाओं में बदलाव होने पर, मौजूदा व्यूपोर्ट में मौजूद सुविधाएं अपने-आप रेंडर हो जाती हैं.

KmlLayer में मौजूद कॉम्पोनेंट, मांग पर रेंडर किए जाते हैं. इसलिए, लेयर की मदद से, हज़ारों मार्कर, पॉलीलाइन, और पॉलीगॉन की रेंडरिंग को आसानी से मैनेज किया जा सकता है. ध्यान दें कि इन कॉम्पोनेंट को सीधे तौर पर ऐक्सेस नहीं किया जा सकता. हालांकि, ये हर उस ऑब्जेक्ट को क्लिक इवेंट के तौर पर ऐक्सेस करते हैं जो उन अलग-अलग ऑब्जेक्ट का डेटा दिखाता है.

KML लेयर के विकल्प

KmlLayer() कंस्ट्रक्टर, वैकल्पिक तौर पर KmlLayerOptions की संख्या पास करता है:

  • map वह Map तय करता है जिस पर KmlLayer को रेंडर करना है. KmlLayer को छिपाने के लिए, setMap() तरीके में इस वैल्यू को null पर सेट किया जा सकता है.
  • preserveViewport यह बताता है कि लेयर दिखाते समय, मैप को KmlLayer के कॉन्टेंट की सीमाओं के हिसाब से नहीं अडजस्ट किया जाना चाहिए. डिफ़ॉल्ट रूप से, KmlLayer दिखाते समय मैप को ज़ूम किया जाता है और उसकी जगह तय की जाती है, ताकि लेयर का पूरा कॉन्टेंट दिखाया जा सके.
  • suppressInfoWindows बताता है कि KmlLayer में मौजूद क्लिक करने लायक सुविधाओं से, InfoWindow ऑब्जेक्ट न दिखाएं.

इसके अलावा, KmlLayer को रेंडर करने के बाद, इसमें नहीं बदली जा सकने वाली metadata प्रॉपर्टी होती है. इसमें KmlLayerMetadata ऑब्जेक्ट लिटरल में लेयर का नाम, ब्यौरा, स्निपेट, और लेखक शामिल होता है. इस जानकारी की जांच करने के लिए, getMetadata() तरीके का इस्तेमाल किया जा सकता है. KmlLayer ऑब्जेक्ट को रेंडर करने के लिए, किसी बाहरी सर्वर से एसिंक्रोनस कम्यूनिकेशन की ज़रूरत होती है. इसलिए, आपको metadata_changed इवेंट को सुनना होगा. इससे पता चलता है कि प्रॉपर्टी में जानकारी अपने-आप भर गई है.

यहां दिए गए उदाहरण में, दिए गए GeoRSS फ़ीड से KmlLayer बनाया गया है:

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;

सीएसएस

/* 
 * 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>
  <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>

सैंपल आज़माएं

यहां दिए गए उदाहरण में, दिए गए KML फ़ीड से KmlLayer बनाया गया है:

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;

सीएसएस

/* 
 * 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>
  <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 उस अक्षांश/देशांतर निर्देशांक को दिखाता है जिस पर इस KML सुविधा के लिए InfoWindow को ऐंकर किया जाना है. आम तौर पर, पॉलीगॉन, पॉलीलाइन, और GroundOverlays के लिए यह जगह क्लिक की गई जगह होती है, लेकिन मार्कर की सही शुरुआत होती है.
  • InfoWindow “टेल” को ऐंकर करने के लिए, pixelOffset ऊपर दिए गए position से ऑफ़सेट दिखाता है. पॉलीगॉन ऑब्जेक्ट के लिए, यह ऑफ़सेट आम तौर पर 0,0 होता है. हालांकि, मार्कर की ऊंचाई में मार्कर की ऊंचाई शामिल होती है.
  • featureData में KmlFeatureData का JSON स्ट्रक्चर शामिल है.

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;

सीएसएस

/* 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>
  <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 रेंडरिंग के लिए साइज़ और जटिलता की पाबंदियां

Maps JavaScript API में, लोड की गई KML फ़ाइलों के साइज़ और जटिलता की सीमाएं होती हैं. मौजूदा सीमाओं की खास जानकारी यहां दी गई है.

ध्यान दें: इन सीमाओं को कभी भी बदला जा सकता है.

प्राप्त अधिकतम फ़ाइल आकार (सामान्य KML, सामान्य GeoRSS, या संपीडित KMZ)
3 एमबी
अधिकतम असंपीडित KML फ़ाइल आकार
10 एमबी
KMZ फ़ाइलों में अधिकतम अनकंप्रेस्ड इमेज फ़ाइल आकार
हर फ़ाइल के लिए 500 केबी
नेटवर्क लिंक की ज़्यादा से ज़्यादा संख्या
10
पूरे दस्तावेज़ में अधिकतम विशेषताओं की संख्या
1,000
KML लेयर की संख्या
एक Google Maps पर, KML लेयर की संख्या सीमित होती है. अगर आप इस सीमा को पार कर जाते हैं, तो आपकी कोई भी लेयर मैप पर नहीं दिखेगी और आपके वेब ब्राउज़र के JavaScript कंसोल में एक गड़बड़ी रिपोर्ट की जाएगी. यह सीमा, बनाई गई KmlLayer क्लास की संख्या और उन लेयर को बनाने के लिए इस्तेमाल किए गए सभी यूआरएल की कुल लंबाई के हिसाब से तय होती है. जब भी नया KmlLayer बनाया जाएगा, तब लेयर की सीमा का एक और हिस्सा, उस यूआरएल की लंबाई के हिसाब से तय किया जाएगा जहां से KML फ़ाइल लोड की गई थी. इसलिए, हर ऐप्लिकेशन के लिए अलग-अलग लेयर जोड़ी जा सकती हैं. औसतन, आपको 10 से 20 लेयर के बीच लोड करना होगा और आपको तय सीमा से ज़्यादा लेयर भी लोड करनी होंगी. अगर अब भी आपकी सीमा पूरी हो जाती है, तो KML यूआरएल को छोटा करने के लिए यूआरएल छोटा करने की सुविधा का इस्तेमाल करें. इसके अलावा, अलग-अलग KML यूआरएल के लिए NetworkLinks वाली एक KML फ़ाइल बनाएं.

परफ़ॉर्मेंस और कैश मेमोरी से जुड़ी ज़रूरी बातें

आपके सर्वर पर लोड कम करने के लिए, Google के सर्वर कुछ समय के लिए KML फ़ाइलों को कैश मेमोरी में सेव करेंगे. इससे आपकी KML फ़ाइल में सही सेगमेंट को जगह के हिसाब से व्यवस्थित करके, उपयोगकर्ताओं के लिए मैप की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है. ऐसा करने से, जब उपयोगकर्ता मैप पर क्लिक, पैन, और ज़ूम करते हैं, तब ऐसा होता है.

सबसे अच्छी परफ़ॉर्मेंस के लिए, हमारा सुझाव है कि आप:

  • KML में सही <expires> टैग का इस्तेमाल करें.

    KmlLayer KML फ़ाइलों को कैश मेमोरी में सेव करने का तरीका तय करते समय, एचटीटीपी हेडर का इस्तेमाल नहीं करेगा.
  • अनुरोध किए जाने पर, डाइनैमिक तौर पर फ़ाइलें जनरेट न करें.

    इसके बजाय, फ़ाइलों की ज़रूरत पड़ने से पहले उन्हें जनरेट करें और उन्हें स्टैटिक रूप से दिखाएं. अगर आपके सर्वर को KML फ़ाइल ट्रांसमिट करने में ज़्यादा समय लगता है, तो हो सकता है कि KmlLayer न दिखे.
  • कैश मेमोरी को बायपास करने की कोशिश सिर्फ़ तब करें, जब आपको यह पता चल जाए कि आपकी फ़ाइल अपडेट हो गई है.

    हमेशा कैश मेमोरी को बायपास करने (उदाहरण के लिए, कोई संख्या या उपयोगकर्ता के समय को क्वेरी पैरामीटर के तौर पर जोड़कर) अगर आपकी साइट अचानक लोकप्रिय हो जाती है और बड़ी KML फ़ाइलें इस्तेमाल की जा रही है, तो आपके सर्वर पर काम करना मुश्किल हो सकता है.

    अगर किसी उपयोगकर्ता की घड़ी गलत है और <expires> टैग सही तरीके से सेट नहीं किया गया है, तो इसकी वजह से भी उपयोगकर्ताओं को पुराना डेटा दिख सकता है.

    इसके बजाय, अपडेट की गई स्टैटिक फ़ाइलों को एक नए और डिस्क्रीट वर्शन के साथ पब्लिश करें. साथ ही, KmlLayer को पास किए गए यूआरएल को मौजूदा वर्शन के साथ डाइनैमिक तौर पर अपडेट करने के लिए, सर्वर साइड कोड का इस्तेमाल करें.
  • अपनी KML फ़ाइलों में एक मिनट में सिर्फ़ एक बार बदलाव करें.

    अगर सभी फ़ाइलों का साइज़ एक एमबी से ज़्यादा है (बिना कंप्रेस किए) से ज़्यादा है, तो हर पांच मिनट में एक बार ही बदलाव करें.
  • जियोस्पेशियल डेटा सर्वर का इस्तेमाल करते समय, लेयर के व्यूपोर्ट को सीमित करने के लिए क्वेरी पैरामीटर का इस्तेमाल करने से बचें.

    इसके बजाय, मैप के व्यूपोर्ट को bounds_changed इवेंट से सीमित किया जा सकता है. उपयोगकर्ताओं को सिर्फ़ वे सुविधाएं भेजी जाएंगी जो अपने-आप दिख सकती हैं.

    अगर आपके जियोस्पेशियल डेटा सर्वर में ज़्यादा डेटा है, तो इसके बजाय डेटा लेयर का इस्तेमाल करें.
  • जियोस्पेशियल डेटा सर्वर का इस्तेमाल करते समय, अलग-अलग क्वेरी पैरामीटर वाले एक KmlLayer के बजाय, उन सुविधाओं के हर ग्रुप के लिए कई KmlLayer का इस्तेमाल करें जिन्हें आपको टॉगल करने की अनुमति देनी है.
  • फ़ाइल का साइज़ कम करने के लिए, कंप्रेस की गई KMZ फ़ाइलें इस्तेमाल करें.
  • अगर Google Cloud Storage या किसी दूसरे क्लाउड स्टोरेज समाधान का इस्तेमाल किया जा रहा है, तो ऐक्सेस कंट्रोल लागू करने के लिए, साइन किए हुए यूआरएल या अस्थायी टोकन जैसी सुविधाओं का इस्तेमाल करने से बचें. इसकी वजह से, अनजाने में कैश मेमोरी में सेव होने से रोका जा सकता है.
  • सभी पॉइंट को सटीक तरीके से पूरा करना कम करें.
  • पॉलीगॉन और पॉलीलाइन जैसी एक जैसी सुविधाओं की ज्यामिति को मर्ज करें और उन्हें आसान बनाएं.
  • ऐसे एलिमेंट या इमेज रिसॉर्स हटाएं जिनका इस्तेमाल नहीं हुआ है.
  • सभी काम न करने वाले एलिमेंट हटाएं.

अगर आपको निजी डेटा ऐक्सेस करना है, कैश मेमोरी में सेव करना है या ब्राउज़र के व्यूपोर्ट को जियोस्पेशियल डेटा सर्वर पर क्वेरी पैरामीटर के तौर पर भेजना है, तो हमारा सुझाव है कि आप KmlLayer के बजाय डेटा लेयर का इस्तेमाल करें. इससे, लोगों के ब्राउज़र सीधे आपके वेब सर्वर से रिसॉर्स का अनुरोध करने लगेंगे.

इस्तेमाल किए जा सकने वाले KML एलिमेंट

Maps JavaScript API, इन KML एलिमेंट के साथ काम करता है. सामान्य रूप से, समझ नहीं आने पर KML पार्सर, XML टैग को चुपचाप अनदेखा करता है.

  • प्लेसमार्क
  • आइकन
  • फ़ोल्डर
  • डिस्क्रिप्टिव एचटीएमएल—<BalloonStyle> और <text> के ज़रिए इकाई बदलना
  • KMZ (संलग्न चित्र सहित संपीडित KML)
  • बहुरेखा तथा बहुभुज
  • रंग, भराव तथा अपारदर्शिता सहित बहुरेखाओं व बहुभुजों के लिए शैलियां
  • डेटा को डायनॉमिक तरीके से आयात करने के लिए नेटवर्क लिंक
  • ग्राउंड ओवरले तथा स्क्रीन ओवरले

नीचे दी गई टेबल में, इस्तेमाल किए जा सकने वाले KML एलिमेंट की पूरी जानकारी दी गई है.

KML एलिमेंट क्या एपीआई में काम करता है? Comment
<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> हाँ एचटीएमएल कॉन्टेंट की अनुमति है, लेकिन इसे क्रॉस-ब्राउज़र हमलों से सुरक्षित रखने के लिए सैनिटाइज़ किया गया है. $[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> हाँ सीधे तौर पर <लीनियर Ring> ऑर्डर से लिया गया
<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> कुछ हद तक काम करते हैं. एपीआई, एचटीटीपी हेडर में साइट के खत्म होने की जानकारी देने वाली सेटिंग को अनदेखा करता है. हालांकि, KML में बताई गई समयसीमा खत्म होने की सेटिंग का इस्तेमाल करता है. समयसीमा खत्म होने की सेटिंग न होने पर या समयसीमा के दौरान, Google Maps बिना बताई गई अवधि के लिए इंटरनेट से फ़ेच किए गए डेटा को कैश मेमोरी में सेव कर सकता है. इंटरनेट से डेटा को फिर से फ़ेच करने के लिए, दस्तावेज़ का नाम बदलें और उसे किसी दूसरे यूआरएल से फ़ेच करें. इसके अलावा, यह भी पक्का किया जा सकता है कि दस्तावेज़ में, समयसीमा खत्म होने की सही सेटिंग मौजूद हो.
<north> हाँ
<open> हाँ
<Orientation> लागू नहीं <Model> काम नहीं करता
<outerBoundaryIs> हाँ सीधे तौर पर <लीनियर Ring> ऑर्डर से लिया गया
<outline> हाँ
<overlayXY> no
<Pair> लागू नहीं <StyleMap> समर्थित नहीं है
<phoneNumber> no
<PhotoOverlay> no
<Placemark> हाँ
<Point> हाँ
<Polygon> हाँ
<PolyStyle> हाँ
<range> हाँ
<refreshInterval> कुछ हद तक सिर्फ़ <लिंक>; <Icon> में नहीं
<refreshMode> हाँ "onExpire" मोड के साथ, एचटीटीपी हेडर काम नहीं करते. ऊपर दिए गए <Update> और <expires> पर नोट देखें.
<refreshVisibility> no
<Region> हाँ
<ResourceMap> लागू नहीं <Model> काम नहीं करता
<rightFov> लागू नहीं <PhotoOverlay> काम नहीं करता
<रोल> लागू नहीं <Camera> और <Model> काम नहीं करते
<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> काम नहीं करता
<अपडेट करें> कुछ हद तक सिर्फ़ स्टाइल में बदलाव किए गए हैं, <Create> या <Delete> नहीं
<Url> हाँ अनुचित
<value> हाँ
<viewBoundScale> no
<viewFormat> no
<viewRefreshMode> कुछ हद तक "onStop" काम करता है
<viewRefreshTime> हाँ
<ViewVolume> लागू नहीं <PhotoOverlay> काम नहीं करता
<visibility> कुछ हद तक <फ़ोल्डर> पर हां - चाइल्ड प्लेसमार्क अपनी दृश्यता इनहेरिट करते हैं
<w> हाँ अनुचित
<west> हाँ
<when> लागू नहीं <TimeStamp> मौजूद नहीं है
<width> हाँ
<x> हाँ अनुचित
<y> हाँ अनुचित