Element KmlLayer
renderuje elementy KML i GeoRSS w nakładce kafelków interfejsu Maps JavaScript API.
Opis
Interfejs Maps JavaScript API obsługuje formaty danych KML i GeoRSS w celu wyświetlania informacji geograficznych. Te formaty danych są wyświetlane na mapie przy użyciu 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 na potrzeby renderowania.
W związku z tym można wyświetlać pliki KML tylko wtedy, gdy są przechowywane pod publicznie dostępnym adresem URL, do którego dostęp nie wymaga uwierzytelniania.
Jeśli potrzebujesz dostępu do plików prywatnych, szczegółowej kontroli nad pamięciami podręcznymi lub wysyłania widocznego obszaru przeglądarki do serwera danych geoprzestrzennych jako parametru zapytania, zalecamy użycie warstw danych zamiast KmlLayer
. Spowoduje to przekierowanie przeglądarek użytkowników do bezpośredniego żądania zasobów z serwera WWW.
Interfejs Maps JavaScript API konwertuje podane dane geograficzne w formacie XML na format KML, który jest wyświetlany na mapie za pomocą nakładki z kafelkami interfejsu Maps JavaScript API. Ten plik KML wygląda (i trochę się zachowuje) jak elementy nakładki interfejsu Maps JavaScript API. Elementy KML <Placemark>
i GeoRSS point
są renderowane jako znaczniki. Na przykład elementy <LineString>
– jako linie łamane, a elementy <Polygon>
– jako wielokąty. Podobnie elementy <GroundOverlay>
są renderowane na mapie jako prostokątne obrazy. Co ważne, te obiekty nie są interfejsem Maps JavaScript API Markers
, Polylines
, Polygons
ani GroundOverlays
– są renderowane jako pojedynczy obiekt na mapie.
Gdy ustawisz właściwość map
, obiekty KmlLayer
pojawią się na mapie. Możesz je usunąć z mapy, wywołując metodę setMap()
przekazującą null
. Obiekt KmlLayer
zarządza renderowaniem tych elementów podrzędnych przez automatyczne pobieranie odpowiednich cech na potrzeby podanych granic mapy. Gdy granice się zmieniają, obiekty w bieżącym widocznym obszarze są renderowane automatycznie.
Komponenty w obiekcie KmlLayer
są renderowane na żądanie, dlatego warstwa pozwala łatwo zarządzać renderowaniem tysięcy znaczników, linii łamanych i wielokątów. Pamiętaj, że nie masz bezpośredniego dostępu do tych obiektów składowych, ale każdy z nich zawiera zdarzenia kliknięcia, które zwracają dane tych obiektów.
Opcje warstwy KML
Konstruktor KmlLayer()
opcjonalnie przekazuje liczbę KmlLayerOptions
:
map
określa elementMap
, w którym ma być renderowanyKmlLayer
. Możesz ukryć właściwośćKmlLayer
, ustawiając tę wartość nanull
w metodziesetMap()
.preserveViewport
określa, że podczas wyświetlania warstwy mapa nie powinna być dostosowywana do granic zawartości elementuKmlLayer
. Podczas wyświetlania obiektuKmlLayer
mapa jest domyślnie powiększona i ustawiona tak, aby pokazać całą zawartość warstwy.suppressInfoWindows
wskazuje, że klikalne obiekty wKmlLayer
nie powinny uruchamiać wyświetlania obiektówInfoWindow
.
Dodatkowo po wyrenderowaniu KmlLayer
zawiera niezmienną właściwość metadata
zawierającą nazwę warstwy, opis, fragment kodu i autora w literale obiektu KmlLayerMetadata
. Te informacje możesz sprawdzić za pomocą metody getMetadata()
. Renderowanie obiektów KmlLayer
wymaga asynchronicznej komunikacji z serwerem zewnętrznym, dlatego warto nasłuchiwać zdarzenia metadata_changed
, które wskazuje, że właściwość została wypełniona.
Ten przykład umożliwia utworzenie elementu 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>
Wypróbuj fragment
Poniższy przykład umożliwia utworzenie elementu KmlLayer
z danego kanału 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>
Wypróbuj fragment
Szczegóły funkcji KML
Plik KML może obejmować dużą liczbę obiektów, dlatego nie możesz uzyskać dostępu do danych cech bezpośrednio z obiektu KmlLayer
. Podczas wyświetlania obiektów wyglądają one jak klikalne nakładki interfejsu Maps JavaScript API.
Domyślnie kliknięcie danego obiektu powoduje wyświetlenie InfoWindow
z informacjami w formacie KML <title>
i <description>
dotyczącymi danej cechy.
Poza tym kliknięcie funkcji KML generuje element KmlMouseEvent
, który przekazuje następujące informacje:
position
wskazuje współrzędne szerokości i długości geograficznej, w których ma być zakotwiczony elementInfoWindow
dla danego obiektu KML. Ta pozycja jest zwykle klikniętą lokalizacją wielokątów, linii łamanych i nakładek naziemnych, ale jest to rzeczywiste źródło znaczników.pixelOffset
wskazuje przesunięcie od wskazanego powyżejposition
miejsca zakotwiczenia elementuInfoWindow
. W przypadku obiektów wielokątnych to przesunięcie wynosi zwykle0,0
, ale w przypadku znaczników obejmuje wysokość znacznika.featureData
zawiera strukturę JSONKmlFeatureData
.
Poniżej znajduje się przykładowy obiekt KmlFeatureData
:
{ author: { email: "nobody@google.com", name: "Mr Nobody", uri: "http://example.com" }, description: "description", id: "id", infoWindowHtml: "html", name: "name", snippet: "snippet" }
Na przykładzie poniżej widać tekst elementu KML <Description>
w boku elementu <div>
po kliknięciu obiektu:
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>
Wypróbuj fragment
Ograniczenia rozmiaru i złożoności renderowania KML
Interfejs Maps JavaScript API podlega ograniczeniom dotyczącym rozmiaru i złożoności wczytywanych plików KML. Poniżej znajduje się podsumowanie obecnych limitów.
Uwaga: te limity mogą się w każdej chwili zmienić.
- 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 graficznego 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. Jeśli przekroczysz ten limit, na mapie nie pojawi się żadna z warstw, a w konsoli JavaScript Twojej przeglądarki pojawi się komunikat o błędzie. 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 elementKmlLayer
będzie zajmować część limitu warstwy i dalszą część limitu w zależności od długości adresu URL, z którego został wczytany plik KML. W związku z tym liczba warstw, które możesz dodać, będzie różna w zależności od aplikacji. Przeciętnie powinno być możliwe wczytanie od 10 do 20 warstw bez przekroczenia limitu. Jeśli nadal osiągniesz limit, użyj narzędzia do skracania adresów URL, aby skrócić adresy URL. Możesz też utworzyć pojedynczy plik KML zawierający elementy NetworkLinks do poszczególnych adresów URL w formacie KML.
Uwagi na temat wydajności i pamięci podręcznej
Serwery Google tymczasowo zapisują pliki KML w pamięci podręcznej, aby zmniejszyć obciążenie Twoich serwerów. Zwiększa to też wydajność użytkowników, ponieważ gdy użytkownicy klikają, przesuwają i powiększają mapę, reprezentacja odpowiednich segmentów w pliku KML nie zajmuje dużo miejsca.
Aby uzyskać najlepszą skuteczność, zalecamy:
- Użyj odpowiedniego tagu
<expires>
w pliku KML.KmlLayer
nie będzie używać nagłówków HTTP podczas podejmowania decyzji o pamięci podręcznej plików KML. - Nie generuj plików dynamicznie w czasie żądania.
Zamiast tego wygeneruj pliki, zanim będą potrzebne, i wyświetlaj je statycznie. Jeśli przesyłanie pliku KML przez serwer trwa zbyt długo, parametrKmlLayer
może się nie wyświetlić. - Nie próbuj omijać pamięci podręcznych, jeśli nie masz pewności, że plik został zaktualizowany.
Ciągłe ominięcie pamięci podręcznej (np. przez dołączanie losowej liczby lub godziny zegara użytkownika jako parametru zapytania) może łatwo spowodować przeciążenie Twoich serwerów w przypadku nagłego zwiększenia popularności witryny i udostępniania dużych plików KML.
Może to też spowodować, że pamięć podręczna będzie wyświetlać użytkownikom nieaktualne dane, jeśli zegar jakiegoś użytkownika jest nieprawidłowy, a tag<expires>
nie został prawidłowo ustawiony.
Zamiast tego opublikuj zaktualizowane pliki statyczne z nowym, dyskretnym numerem wersji i używaj kodu po stronie serwera, aby dynamicznie aktualizować adres URL przekazany doKmlLayer
za pomocą bieżącej wersji. - Ogranicz wprowadzanie zmian w plikach KML do raz na minutę.
Jeśli łączny rozmiar wszystkich plików (po zdekompresowaniu przekracza 1 MB), ogranicz liczbę zmian do 1 na 5 minut. - Jeśli korzystasz z serwera danych geoprzestrzennych, unikaj używania parametrów zapytania, aby ograniczyć widoczny obszar warstw.
Możesz jednak ograniczyć widoczny obszar mapy za pomocą zdarzeniabounds_changed
. Użytkownicy otrzymają tylko te funkcje, które mogą zostać wyświetlone automatycznie.
Jeśli na serwerze danych geoprzestrzennych jest dużo danych, rozważ użycie warstw danych. - Jeśli korzystasz z serwera danych geoprzestrzennych, zamiast jednego obiektu
KmlLayer
z różnymi parametrami zapytania użyj wielu elementówKmlLayer
dla każdej grupy funkcji, na które chcesz zezwolić użytkownikom. - Aby zmniejszyć rozmiar pliku, użyj skompresowanych plików KMZ.
- Jeśli korzystasz z Google Cloud Storage lub innego rozwiązania do przechowywania danych w chmurze, unikaj używania takich funkcji jak podpisane adresy URL czy tokeny tymczasowe do wymuszania kontroli dostępu. Mogą one w sposób niezamierzony zapobiec zapisywaniu danych w pamięci podręcznej.
- Zmniejsz dokładność wszystkich punktów do odpowiedniej precyzji.
- Scalanie i upraszczanie geometrii podobnych obiektów, takich jak wielokąty i linie łamane.
- Usuń nieużywane elementy lub zasoby graficzne.
- Usuń wszystkie nieobsługiwane elementy.
Jeśli chcesz uzyskać dostęp do danych prywatnych, zapobiec zapisywaniu danych w pamięci podręcznej lub wysłać widoczny obszar przeglądarki do serwera danych geoprzestrzennych w ramach parametru zapytania, zalecamy używanie warstw danych zamiast KmlLayer
. Spowoduje to przekierowanie przeglądarek użytkowników bezpośrednio do Twojego serwera WWW.
Obsługiwane elementy KML
Interfejs Maps JavaScript API obsługuje poniższe elementy KML. Parser plików KML ignoruje bez powiadamiania tagi XML, których nie rozpoznaje.
- Oznaczenia miejsc
- Ikony
- Foldery
- Opisowy kod HTML – zastępowanie encji za pomocą tagó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 w interfejsie API? | Komentarz |
---|---|---|
<address> | nie | |
<AddressDetails> | nie | |
<Alias> | Nie dotyczy | <Model> nie jest obsługiwany |
<altitude> | nie | |
<altitudeMode> | nie | |
<atom:author> | tak | |
<atom:link> | tak | |
<atom:name> | tak | |
<BalloonStyle> | częściowo | obsługiwany jest tylko element <text> |
<begin> | Nie dotyczy | Parametr <TimeSpan> nie jest obsługiwany |
<bgColor> | nie | |
<bottomFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<Camera> | nie | |
<Zmień> | częściowo | obsługiwane są tylko zmiany stylu |
<color> | częściowo | zawiera #AABBGGRR i #BBGGRR; nieobsługiwane w elementach <IconStyle>, <ScreenOverlay> i <GroundOverlay> |
<colorMode> | nie | |
<cookie> | nie | |
<coordinates> | tak | |
<Utwórz> | nie | |
<Data> | tak | |
<Usuń> | nie | |
<description> | tak | Treści HTML są dozwolone, ale są odpowiednio przetworzone, aby zapewniać ochronę przed atakami w różnych przeglądarkach. Zamienniki encji w formularzu $[dataName] nie są obsługiwane. |
<displayMode> | nie | |
<displayName> | nie | |
<Document> | częściowo | domyślnie obsługiwane są elementy podrzędne; nie ma żadnego wpływu na działanie innych funkcji. |
<drawOrder> | nie | |
<east> | tak | |
<end> | Nie dotyczy | Parametr <TimeSpan> nie jest obsługiwany |
<expires> | tak | szczegóły w sekcji Podsumowanie |
<ExtendedData> | częściowo | Tylko beztypowy element <Data>, brak < SimpleData> lub <Schema> oraz zamienniki encji w formie $[dataName] nie są obsługiwane.
|
<extrude> | nie | |
<fill> | tak | |
<flyToView> | nie | |
<Folder> | tak | |
<geomColor> | nie | wycofane |
<GeometryCollection> | nie | wycofane |
<geomScale> | nie | wycofane |
<gridOrigin> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<GroundOverlay> | tak | nie można obrócić |
<h> | tak | wycofane |
<heading> | tak | |
wskazówka | tak | Obsługiwane: target=... |
<hotSpot> | tak | |
<href> | tak | |
<httpQuery> | nie | |
<Icon> | tak | nie można obrócić |
<IconStyle> | tak | |
<ImagePyramid> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<innerBoundaryIs> | tak | domyślnie z zamówienia <LinearRing> |
<ItemIcon> | Nie dotyczy | Parametr <ListStyle> nie jest obsługiwany |
<key> | Nie dotyczy | Znacznik <StyleMap> nie jest obsługiwany |
<kml> | tak | |
<labelColor> | nie | wycofane |
<LabelStyle> | nie | |
<latitude> | tak | |
<LatLonAltBox> | tak | |
<LatLonBox> | tak | |
<leftFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<LinearRing> | tak | |
<LineString> | tak | |
<LineStyle> | tak | |
<Link> | tak | |
<linkDescription> | nie | |
<linkName> | nie | |
<linkSnippet> | nie | |
<listItemType> | Nie dotyczy | Parametr <ListStyle> nie jest obsługiwany |
<ListStyle> | nie | |
<Lokalizacja> | Nie dotyczy | <Model> nie jest obsługiwany |
<Lod> | tak | |
<longitude> | tak | |
<LookAt> | nie | |
<maxAltitude> | tak | |
<maxFadeExtent> | tak | |
<maxHeight> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<maxLodPixels> | tak | |
<maxSessionLength> | nie | |
<maxWidth> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<message> | nie | |
<Metadata> | nie | wycofane |
<minAltitude> | tak | |
<minFadeExtent> | tak | |
<minLodPixels> | tak | |
<minRefreshPeriod> | nie | <NetworkLink> |
<Model> | nie | |
<MultiGeometry> | częściowo | wyrenderowano, ale wyświetlane jako osobne funkcje w lewym panelu bocznym |
<name> | tak | |
<w pobliżu> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<NetworkLink> | tak | |
<NetworkLinkControl> | częściowo | <Update> i <expires> częściowo obsługiwane. Interfejs API ignoruje ustawienia ważności w nagłówkach HTTP, ale korzysta z ustawień wygaśnięcia określonych w KML. W przypadku braku ustawień dotyczących okresu ważności lub w przypadku braku okresu ważności danych Mapy Google mogą buforować dane pobrane z internetu przez nieokreślony czas. Ponowne pobranie danych z internetu może zostać wymuszone przez zmianę nazwy dokumentu i pobranie go pod innym adresem URL albo sprawdzenie, czy dokument zawiera odpowiednie ustawienia daty ważności. |
<north> | tak | |
<open> | tak | |
<Orientation> | Nie dotyczy | <Model> nie jest obsługiwany |
<outerBoundaryIs> | tak | domyślnie z zamówienia <LinearRing> |
<outline> | tak | |
<overlayXY> | nie | |
<Pair> | Nie dotyczy | Znacznik <StyleMap> nie jest obsługiwany |
<phoneNumber> | nie | |
<PhotoOverlay> | nie | |
<Placemark> | tak | |
<Point> | tak | |
<Polygon> | tak | |
<PolyStyle> | tak | |
<range> | tak | |
<refreshInterval> | częściowo | Tylko <Link>, nie <Ikona> |
<refreshMode> | tak | Nagłówki HTTP nie są obsługiwane w trybie „onExpire”. Przeczytaj powyższe uwagi na temat <Update> i <expires>. |
<refreshVisibility> | nie | |
<Region> | tak | |
<ResourceMap> | Nie dotyczy | <Model> nie jest obsługiwany |
<rightFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<roll> | Nie dotyczy | <Aparat> i <Model> nie są obsługiwane |
<rotation> | nie | |
<rotationXY> | nie | |
<Skala> | Nie dotyczy | <Model> nie jest obsługiwany |
<scale> | nie | |
<Schema> | nie | |
<SchemaData> | nie | |
<ScreenOverlay> | tak | nie można obrócić |
<screenXY> | nie | |
<shape> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<SimpleData> | Nie dotyczy | Znaczniki <SchemaData> nie są obsługiwane |
<SimpleField> | Nie dotyczy | Schematy <Schema> nie są obsługiwane |
<size> | tak | |
<Snippet> | tak | |
<south> | tak | |
<state> | Nie dotyczy | Parametr <ListStyle> nie jest obsługiwany |
<Style> | tak | |
<StyleMap> | nie | efekty przesunięcia (wyróżnienia) nie są obsługiwane |
<styleUrl> | Nie dotyczy | Znacznik <StyleMap> nie jest obsługiwany |
<targetHref> | częściowo | obsługiwane na ścieżce <Update>, nie <Alias>. |
<tessellate> | nie | |
<text> | tak | zastępowanie elementu $[geDirections] nie jest obsługiwane |
<textColor> | nie | |
<tileSize> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<tilt> | nie | |
<TimeSpan> | nie | |
<TimeStamp> | nie | |
<topFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<Aktualizacja> | częściowo | tylko zmiany stylu, a nie <Create> czy <Delete> |
<Url> | tak | wycofane |
<value> | tak | |
<viewBoundScale> | nie | |
<viewFormat> | nie | |
<viewRefreshMode> | częściowo | Działanie „onStop” jest obsługiwane |
<viewRefreshTime> | tak | |
<ViewVolume> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<visibility> | częściowo | tak w <Folder> – oznaczenia miejsc podrzędnych dziedziczą widoczność |
<w> | tak | wycofane |
<west> | tak | |
<when> | Nie dotyczy | Parametr <TimeStamp> nie jest obsługiwany |
<width> | tak | |
<x> | tak | wycofane |
<y> | tak | wycofane |