Warstwy KML i GeoRSS

Wybierz platformę: Android iOS JavaScript

KmlLayer renderuje elementy KML i GeoRSS w nakładce kafelków interfejsu API JavaScript Map.

Przegląd

Interfejs API JavaScript Map Google obsługuje formaty danych KML i GeoRSS na potrzeby wyświetlania informacji geograficznych. Te formaty danych są wyświetlane na mapie za pomocą obiektu KmlLayer, którego konstruktor pobiera adres URL publicznie dostępnego pliku KML lub GeoRSS.

Uwaga: klasa KmlLayer, która generuje nakładki KML w interfejsie Maps JavaScript API, korzysta z usługi hostowanej przez Google do pobierania i analizowania plików KML do renderowania. W związku z tym możliwe jest wyświetlanie plików KML tylko wtedy, gdy są one przechowywane pod publicznie dostępnym adresem URL, który nie wymaga uwierzytelniania.

Jeśli potrzebujesz dostępu do plików prywatnych, szczegółowej kontroli nad pamięcią podręczną lub wysyłasz okno przeglądarki do serwera danych geoprzestrzennych jako parametru zapytania, zalecamy użycie warstw danych zamiast KmlLayer. Dzięki temu przeglądarki użytkowników będą mogły bezpośrednio wysyłać żądania zasobów do Twojego serwera WWW.

Interfejs API JavaScript Map Google konwertuje przesłane dane XML na reprezentację KML, która jest wyświetlana na mapie przy użyciu nakładki na kafelek interfejsu API JavaScript Map. Ten plik KML wygląda (i trochę działa) jak podobne elementy interfejsu nakładanego interfejsu API JavaScript Map Google. Elementy KML <Placemark> i GeoRSS point są renderowane jako znaczniki. Na przykład elementy <LineString> są renderowane jako linie łamane, a elementy <Polygon> – jako wielokąty. Elementy <GroundOverlay> są też renderowane na mapie jako prostokątne obrazy. Co ważne, obiekty nie są interfejsem API JavaScript Map Google (Markers, Polylines, Polygons ani GroundOverlays) i wyświetlane w jednym obiekcie na mapie.

Obiekty KmlLayer są wyświetlane na mapie po ustawieniu właściwości map. Możesz usunąć je z mapy, wywołując setMap(), przekazując null. Obiekt KmlLayer zarządza renderowaniem tych elementów podrzędnych, automatycznie pobierając odpowiednie funkcje do wyznaczonych granic mapy. Wraz ze zmianą granic funkcje w bieżącym widoku są automatycznie renderowane.

Komponenty w pliku KmlLayer są renderowane na żądanie, dlatego w warstwie można z łatwością renderować tysiące znaczników, linii łamanych i wielokątów. Pamiętaj, że nie możesz uzyskać dostępu bezpośrednio do tych obiektów składowych, ale każdy z nich podaje zdarzenia kliknięcia, które zwracają dane dotyczące tych obiektów.

Opcje warstwy KML

Konstruktor KmlLayer() opcjonalnie przekazuje liczbę KmlLayerOptions:

  • map określa Map, w którym jest renderowany KmlLayer. KmlLayer możesz ukryć, ustawiając tę wartość na null w metodzie setMap().
  • preserveViewport określa, że mapa nie powinna być dopasowywana do granic zawartości treści KmlLayer podczas wyświetlania warstwy. Podczas wyświetlania obiektu KmlLayer domyślnie mapa jest powiększona i wyświetlana w taki sposób, aby pokazać całą zawartość warstwy.
  • suppressInfoWindows wskazuje, że klikalne funkcje w obiekcie KmlLayer nie powinny wyświetlać obiektu InfoWindow.

Dodatkowo po wyrenderowaniu KmlLayer zawiera stałą właściwość metadata, która zawiera nazwę warstwy, opis, fragment kodu i autora w dosłownym obiekcie KmlLayerMetadata. Możesz to sprawdzić, używając metody getMetadata(). Renderowanie obiektów KmlLayer wymaga asynchronicznej komunikacji z serwerem zewnętrznym, dlatego nasłuchuj zdarzenia metadata_changed, które wskaże, że usługa została wypełniona.

Poniższy przykład tworzy KmlLayer z danego kanału 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>

Fragment

Ten przykład tworzy KmlLayer z danego pliku 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>

Fragment

Szczegóły funkcji KML

KML może zawierać wiele funkcji, dlatego nie możesz bezpośrednio uzyskać dostępu do danych cech z obiektu KmlLayer. W miarę wyświetlania funkcji są one renderowane tak, jakby klikalne nakładki interfejsu API JavaScript Map. Kliknięcie poszczególnych funkcji domyślnie powoduje wyświetlenie InfoWindow z danymi KML <title> i <description> dotyczącymi określonej funkcji. Dodatkowo kliknięcie funkcji KML generuje KmlMouseEvent, który przekazuje te informacje:

  • position wskazuje szerokość i długość geograficzną, od których można zakotwiczyć atrybut InfoWindow w przypadku tego obiektu KML. Jest to zwykle kliknięta lokalizacja wielokątów, linii łamanych i nakładek gruntowych, ale prawdziwe położenie źródła.
  • pixelOffset wskazuje przesunięcie względem powyższego elementu position, aby zakotwiczyć InfoWindow„ogon”. W przypadku obiektów wielokątnych przesunięcie wynosi zwykle 0,0, ale w przypadku znaczników uwzględnia wysokość znacznika.
  • featureData zawiera strukturę JSON KmlFeatureData.

Przykładowy obiekt KmlFeatureData jest wyświetlany poniżej:

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

Poniższy przykład pokazuje wyświetlanie tekstu KML <Description> z boku strony <div> po kliknięciu tej funkcji:

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>

Fragment

Ograniczenia rozmiaru i złożoności renderowania plików KML

Interfejs Maps JavaScript API ma ograniczenia dotyczące rozmiaru i złożoności wczytywanych plików KML. Poniżej znajduje się podsumowanie aktualnych limitów.

Uwaga: te limity mogą ulec zmianie w dowolnym momencie.

Maksymalny rozmiar pobieranego pliku (nieprzetworzone dane KML, nieprzetworzone dane GeoRSS lub skompresowane dane KMZ)
3MB
Maksymalny rozmiar nieskompresowanego pliku KML
10MB
Maksymalny rozmiar nieskompresowanego pliku obrazu w plikach KMZ
500 KB na plik
Maksymalna liczba linków sieciowych
10.
Maksymalna łączna liczba funkcji obejmujących cały dokument
1000
Liczba warstw KML
Liczba warstw KML, które można wyświetlić na jednej mapie Google, jest ograniczona. Po przekroczeniu tego limitu żadna z warstw nie pojawi się na mapie, a w konsoli JavaScript przeglądarki zostanie zgłoszony błąd. Limit jest obliczany na podstawie liczby utworzonych klas KmlLayer i łącznej długości wszystkich adresów URL użytych do utworzenia tych warstw. Każdy nowo utworzony element KmlLayer będzie zajmować część limitu w warstwie oraz dodatkową część limitu w zależności od długości adresu URL, z którego wczytano plik KML. Dlatego liczba warstw, które można dodać, będzie się różnić w zależności od aplikacji. Średnio można wczytać od 10 do 20 warstw bez przekraczania limitu. Jeżeli nadal przekraczasz limit, użyj narzędzia do skracania adresów URL KML. W przeciwnym razie utwórz pojedynczy plik KML zawierający NetworkLinks do poszczególnych adresów URL KML.

Uwagi na temat wydajności i buforowania

Serwery Google tymczasowo buforują pliki KML, aby zmniejszyć obciążenie serwerów. Poprawi to też wydajność użytkowników, wyświetlając odpowiednie segmenty w pliku KML, gdy użytkownicy klikają, przesuwają i powiększają mapę.

Aby uzyskać najlepszą skuteczność:

  • Użyj odpowiedniego tagu <expires> w pliku KML.

    KmlLayer nie będzie używać nagłówków HTTP podczas określania sposobu zapisywania plików KML w pamięci podręcznej.
  • Nie generuj plików dynamicznie na żądanie.

    Zamiast tego wygeneruj pliki, zanim będą potrzebne, i wyświetl je statycznie. Jeśli przesyłanie pliku KML przez serwer zajmuje dużo czasu, KmlLayer może się nie wyświetlać.
  • Nie próbuj omijać pamięci podręcznej, chyba że masz absolutną pewność, że plik został zaktualizowany.

    Ciągłe pomijanie pamięci podręcznej (np. przez dodanie liczby losowej lub zegara użytkownika jako parametru zapytania) może łatwo spowodować przeciążenie Twoich serwerów, jeśli Twoja witryna nagle stanie się popularna i wyświetlasz na niej duże pliki KML.

    Może się również zdarzyć, że pamięć podręczna będzie wyświetlać nieaktualne dane, jeśli zegar użytkownika jest nieprawidłowy, a tag <expires> nie został prawidłowo skonfigurowany.

    Opublikuj zamiast tego zaktualizowane pliki statyczne z nowym, oddzielnym numerem wersji i użyj kodu po stronie serwera, by dynamicznie aktualizować URL przekazywany do KmlLayer za pomocą bieżącej wersji.
  • Ogranicz zmiany w plikach KML do raz na minutę.

    Jeśli rozmiar wszystkich plików jest większy niż 1 MB (po zdekompresowaniu), nie zmieniaj go raz na 5 minut.
  • Jeśli korzystasz z serwera danych geoprzestrzennych, unikaj używania parametrów zapytania, aby ograniczyć widoczny obszar warstw.

    Możesz ograniczyć widok mapy za pomocą zdarzenia bounds_changed. Użytkownicy będą otrzymywać tylko te funkcje, które mogą być wyświetlane automatycznie.

    Jeśli na serwerze danych geoprzestrzennych znajduje się duża ilość danych, rozważ użycie warstw danych.
  • W przypadku serwera danych geoprzestrzennych użyj KmlLayer w przypadku każdej grupy funkcji, które użytkownicy mogą przełączać. W przeciwnym razie używaj KmlLayer z różnymi parametrami zapytania.
  • Aby zmniejszyć rozmiar plików, użyj skompresowanych plików KMZ.
  • Jeśli używasz Google Cloud Storage lub innego rozwiązania do przechowywania w chmurze, unikaj korzystania z takich funkcji jak podpisane adresy URL lub tokeny tymczasowe, aby wymuszać kontrolę dostępu. Może to spowodować niezamierzone zachowanie pamięci podręcznej.
  • Zmniejsz dokładność wszystkich punktów do odpowiedniej dokładności.
  • Scal i uprość geometrię podobnych obiektów, takich jak wielokąty i linie łamane.
  • Usuń wszystkie nieużywane elementy lub zasoby graficzne.
  • Usuń nieobsługiwane elementy.

Jeśli chcesz uzyskać dostęp do danych prywatnych, uniemożliwić zapisywanie w pamięci podręcznej lub wysłać widoczny obszar przeglądarki do serwera danych geoprzestrzennych jako parametru zapytania, zalecamy użycie warstw danych zamiast KmlLayer. Dzięki temu przeglądarki użytkowników będą mogły bezpośrednio wysyłać żądania zasobów do Twojego serwera WWW.

Obsługiwane elementy KML

Interfejs Maps JavaScript API obsługuje następujące elementy KML. Parser plików KML ignoruje bez powiadamiania tagi XML, których nie rozpoznaje.

  • Oznaczenia miejsc
  • Ikony
  • Foldery
  • Opisowy kod HTML – zamiana encji za pomocą znaczników <BalloonStyle> i <text>
  • pliki KMZ (skompresowane pliki KML, w tym również dołączone zdjęcia)
  • linie łamane i wielokąty
  • style linii łamanych i wielokątów, w tym kolor, wypełnienie i przezroczystość
  • linki sieciowe do dynamicznego importowania danych
  • warstwy nad powierzchnią oraz warstwy ekranu

Poniższa tabela zawiera pełne informacje na temat obsługiwanych elementów KML.

Element KML Obsługiwany przez API? Komentarz
<adres> nie
<AddressDetails> nie
<Alias> Nie dotyczy Element <Model> nie jest obsługiwany
<wysokość> nie
<tryb_dostepu> nie
<atom:author> tak
<atom:link> tak
<atom:nazwa> tak
<BalloonStyle> częściowo obsługiwany jest tylko element <text>
<początek> Nie dotyczy Element <TimeSpan> nie jest obsługiwany
<bgColor> nie
<bottomFov> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<Kamera> nie
<Zmień> częściowo obsługiwane są tylko zmiany stylu
<kolor> częściowo zawiera elementy #AABBGGRR i #BBGGRR; nieobsługiwane w tagach <IconStyle>, <ScreenNakładka> i <GroundNakładka>
<kolorTryb> nie
<plik cookie> nie
<współrzędne> tak
<Utwórz> nie
<Dane> tak
<Usuń> nie
<opis> tak Treści HTML są dozwolone, ale są oczyszczone, by chronić je przed atakami w różnych przeglądarkach. Zamiany encji w formacie $[dataName] nie są obsługiwane.
<tryb_wyświetlania> nie
<wyświetlananazwa> nie
<Dokument> częściowo dzieci są domyślnie obsługiwane; nie ma wpływu na działanie elementów podrzędnych innych funkcji
<drawOrder> nie
<wschodni> tak
<end> Nie dotyczy Element <TimeSpan> nie jest obsługiwany
<wygasa> tak Więcej informacji znajdziesz w sekcji Podsumowanie
<RozszerzoneDane> częściowo Nieobsługiwane są tylko elementy <Data>, tagi <SimpleData> i <Schema> oraz zamienniki encji $[dataName].
<wyodrębnij> nie
<wypełnij> tak
<flyToView> nie
<Folder> tak
<geomColor> nie wycofane
<GeometryCollection> nie wycofane
<geomScale>, nie wycofane
<gridOrigin> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<nakładka terenowa> tak nie można wykonać rotacji
<h> tak wycofane
<heading> tak
podpowiedź tak target=...
<Hotspot> tak
<href> tak
<httpzapytanie> nie
<Ikona> tak nie można wykonać rotacji
<IkonaStyle> tak
<Image Piramida> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<wewnetrzne granice> tak bezpośrednio z kolejności <LinearRing>
<ItemIcon>, Nie dotyczy Element <ListStyle> nie jest obsługiwany
<klucz> Nie dotyczy Element <StyleMap> nie jest obsługiwany
<pliku KML> tak
<labelColor> nie wycofane
<EtykietaStyl> nie
<szerokość> tak
<LatLonAltBox> tak
<LatLonBox> tak
<leftFov> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<Dzwonki liniowe> tak
<Ciąg znaków> tak
<LineStyle>, tak
<Link> tak
<linkDescription> nie
<nazwa_linku> nie
<linkFragment> nie
<listItemType> Nie dotyczy Element <ListStyle> nie jest obsługiwany
<ListStyle> nie
<Lokalizacja> Nie dotyczy Element <Model> nie jest obsługiwany
<Lod> tak
<długość geograficzna> tak
<LookAt> nie
<maks. wysokość> tak
<maxFadeExtent> tak
<maxHeight> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<maxLodPixels> tak
<maxSessionLength> nie
<maxWidth> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<message> nie
<Metadata> nie wycofane
<minAltitude> tak
<minFadeExtent> tak
<minLodPixels> tak
<minRefreshPeriod> nie <LinkSieci>
<Model> nie
<MultiGeometry>, częściowo renderowane, ale wyświetlane jako osobne funkcje w panelu bocznym po lewej stronie;
<nazwa> tak
<w pobliżu> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<LinkSieci> tak  
<ControlLinkControl> częściowo Elementy <Update> i <expires> są częściowo obsługiwane. Interfejs API ignoruje ustawienia ważności w nagłówkach HTTP, ale używa ustawień ważności określonych w KML. W przypadku braku ustawień ważności lub w przedziale czasu ważności Mapy Google mogą buforować dane pobierane z internetu na nieokreślone czasy. Aby ponownie pobrać dane z internetu, musisz zmienić nazwę dokumentu i pobrać go pod innym adresem URL. Możesz też sprawdzić, czy dokument zawiera prawidłowe ustawienia daty ważności.
<północ> tak
<otwarte> tak
<Orientacja> Nie dotyczy Element <Model> nie jest obsługiwany
<granica-granica> tak bezpośrednio z kolejności <LinearRing>
<outline> tak
<nakładkaXY> nie
<Parowanie> Nie dotyczy Element <StyleMap> nie jest obsługiwany
<numer telefonu> nie
<PhotoNakładka>. nie
<Oznaczenie miejsca> tak
<Punkt> tak
<Wielokąt> tak
<StylPoly> tak
<zakres> tak
<RefreshInterval> częściowo Tylko <Link>, nie w <Icon>
<RefreshMode> tak Nagłówki HTTP nie są obsługiwane w trybie „onExpire”. Więcej informacji znajdziesz powyżej w sekcjach <Update> i <expires>.
<RefreshWidoczność> nie
<Region> tak
<MapMap> Nie dotyczy Element <Model> nie jest obsługiwany
<prawaFov> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<roll> Nie dotyczy Opcje <Aparat> i <Model> nie są obsługiwane
<rotacja> nie
<rotacjaXY> nie
<Skala> Nie dotyczy Element <Model> nie jest obsługiwany
<skala> nie
<Schemat> nie
<SchemaSchema> nie
<ScreenNakładka>, tak nie można wykonać rotacji
<ekranXY> nie
<kształt> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<SimpleData> Nie dotyczy <SchemaData> nie są obsługiwane
<SimpleField> Nie dotyczy <Schema> nie jest obsługiwany
<rozmiar> tak
<Fragment> tak
<południe> tak
<stan> Nie dotyczy Element <ListStyle> nie jest obsługiwany
<Styl> tak
<StylMap> nie efekty efektów przejścia kursorem (podświetlenie) nie są obsługiwane
<styleUrl> Nie dotyczy Element <StyleMap> nie jest obsługiwany
<targetHref> częściowo obsługiwane w <Update>, a nie w <Alias>
<tessellate> nie
<text> tak zamiana $[geDirections] nie jest obsługiwana
<textColor> nie
<tileSize> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<przechylenie> nie
<Przedział czasu> nie
<sygnatura czasowa> nie
<góraFov> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<Aktualizacja> częściowo tylko zmiany stylu, a nie polecenia <Create> i <Delete>
<Adres URL> tak wycofane
<wartość> tak
<viewBoundScale> nie
<viewFormat> nie
<viewRefreshMode> częściowo Funkcja „onStop” jest obsługiwana
<viewRefreshTime> tak
<ViewVolume> Nie dotyczy Element <PhotoNakładka> nie jest obsługiwany
<widoczność> częściowo tak w folderze <Folder> – oznaczenia miejsc podrzędnych dziedziczą ich widoczność
<w> tak wycofane
<west> tak
<kiedy> Nie dotyczy Element <TimeStamp> nie jest obsługiwany
<szerokość> tak
<x> tak wycofane
<y> tak wycofane