KmlLayer
renderuje elementy KML i GeoRSS w nakładce mapy interfejsu Maps JavaScript API.
Omówienie
Interfejs Maps JavaScript API obsługuje formaty danych KML i GeoRSS do wyświetlania informacji geograficznych. Te formaty danych są wyświetlane na mapie za pomocą obiektu KmlLayer
, którego konstruktor przyjmuje adres URL publicznie dostępnego pliku KML lub GeoRSS.
Uwaga: klasa KmlLayer
, która generuje nakłady 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 pliki KML można wyświetlać tylko wtedy, gdy są one hostowane pod adresem URL dostępnym publicznie, do którego nie trzeba się uwierzytelniać.
Jeśli potrzebujesz dostępu do plików prywatnych, dokładnej kontroli nad pamięcią podręczną lub wysyłania widoku przeglądarki do serwera danych geoprzestrzennych jako parametru zapytania, zalecamy użycie warstw danych zamiast KmlLayer
. Spowoduje to, że przeglądarki użytkowników będą bezpośrednio wysyłać żądania zasobów do Twojego serwera WWW.
Interfejs Maps JavaScript API konwertuje podane dane geograficzne XML na reprezentację KML, która jest wyświetlana na mapie za pomocą nakładki mapy interfejsu Maps JavaScript API. Plik KML wygląda (i działa) podobnie jak znane elementy nakładki interfejsu Maps JavaScript API. Elementy KML <Placemark>
i GeoRSS point
są renderowane jako znaczniki. Na przykład elementy <LineString>
są renderowane jako polilinie, a elementy <Polygon>
jako wielokąty. Podobnie elementy <GroundOverlay>
są renderowane na mapie jako prostokątne obrazy. Należy jednak pamiętać, że te obiekty nie są obiektami interfejsu Maps JavaScript API Markers
, Polylines
, Polygons
ani GroundOverlays
, lecz są renderowane jako pojedynczy obiekt na mapie.
Obiekty KmlLayer
pojawiają się na mapie po ustawieniu właściwości map
. Możesz je usunąć z mapy, wywołując funkcję setMap()
z parametrami null
. Obiekt KmlLayer
zarządza renderowaniem tych elementów podrzędnych, automatycznie pobierając odpowiednie funkcje dla podanych granic mapy. Gdy zmieniają się granice, funkcje w bieżącym widoku są automatycznie renderowane.
Komponenty w KmlLayer
są renderowane na żądanie, dzięki czemu ta warstwa pozwala łatwo zarządzać renderowaniem tysięcy znaczników, polilinii i poligonów. Pamiętaj, że nie możesz uzyskać bezpośredniego dostępu do tych obiektów składowych, ale każdy z nich udostępnia zdarzenia kliknięcia, które zwracają dane o tych poszczególnych obiektach.
Opcje warstwy KML
Konstruktor KmlLayer()
opcjonalnie przekazuje kilka wartości: KmlLayerOptions
:
map
określaMap
, na którym ma zostać wyrenderowany elementKmlLayer
. Możesz ukryćKmlLayer
, ustawiając tę wartość nanull
w ramach metodysetMap()
.preserveViewport
określa, że podczas wyświetlania warstwy mapa nie powinna być dostosowywana do granic zawartości elementuKmlLayer
. Domyślnie podczas wyświetlaniaKmlLayer
mapa jest powiększana i ustawiana tak, aby pokazać całą zawartość warstwy.suppressInfoWindows
oznacza, że klikalne funkcje wKmlLayer
nie powinny powodować wyświetlania obiektówInfoWindow
.
Dodatkowo po renderowaniu KmlLayer
zawiera ona niezmienną właściwość metadata
z nazwą warstwy, opisem, fragmentem i autorem w ramach obiektu KmlLayerMetadata
. Te informacje możesz sprawdzić, używając metody getMetadata()
. Renderowanie obiektów KmlLayer
wymaga komunikacji asynchronicznej z serwerem zewnętrznym, dlatego warto nasłuchiwać zdarzenia metadata_changed
, które wskazuje, że właściwość została wypełniona.
W tym przykładzie z danego kanału GeoRSS tworzymy obiekt 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;
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>
Wypróbuj próbkę
W tym przykładzie z podanego pliku danych KML tworzony jest element 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;
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>
Wypróbuj próbkę
Szczegóły funkcji KML
Ponieważ plik KML może zawierać dużą liczbę funkcji, możesz nie mieć dostępu do danych funkcji bezpośrednio z obiektu KmlLayer
. Zamiast tego wyświetlane są one jako klikalne nakładki interfejsu Maps JavaScript API.
Kliknięcie poszczególnych funkcji powoduje wyświetlenie InfoWindow
zawierającego informacje dotyczące danej funkcji w formacie KML <title>
i <description>
.
Kliknięcie funkcji KML powoduje wygenerowanie KmlMouseEvent
, który przekazuje te informacje:
position
wskazuje współrzędne geograficzne (długość i szerokości), w których ma być zamocowany elementInfoWindow
tej funkcji KML. Ta pozycja jest zazwyczaj klikniętą lokalizacją w przypadku wielokątów, polilinii i GroundOverlay, ale prawdziwym źródłem w przypadku znaczników.pixelOffset
wskazuje przesunięcie odposition
, aby zamocować „ogon”InfoWindow
. W przypadku obiektów wielokątnych to przesunięcie wynosi zwykle0,0
, ale w przypadku znaczników obejmuje wysokość znacznika.featureData
zawiera strukturę JSON o postaciKmlFeatureData
.
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" }
Poniższy przykład pokazuje funkcję KML <Description>
tekst w ramce <div>
po kliknięciu 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> <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>
Wypróbuj próbkę
Ograniczenia dotyczące rozmiaru i złożoności podczas renderowania KML
Interfejs Maps JavaScript API ma ograniczenia dotyczące rozmiaru i złożoności wczytywanych plików KML. Poniżej znajdziesz podsumowanie obecnych 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)
- 3 MB
- Maksymalny rozmiar nieskompresowanego pliku KML
- 10 MB
- Maksymalny nieskompresowany rozmiar pliku obrazu w plikach KMZ
- 500 KB na plik
- Maksymalna liczba połączeń sieciowych
- 10
- Maksymalna łączna liczba funkcji obejmujących cały dokument
- 1000
- Liczba warstw KML
- Liczba warstw KML, które można wyświetlić w pojedynczej Mapie Google, jest ograniczona. Jeśli przekroczysz ten limit, żadne warstwy nie będą widoczne na mapie, a w konsoli JavaScript przeglądarki pojawi się komunikat o błędzie. Limit jest określany na podstawie kombinacji liczby utworzonych klas
KmlLayer
i łącznej długości wszystkich adresów URL użytych do utworzenia tych warstw. Każdy nowy elementKmlLayer
, który utworzysz, zajmie część limitu dla warstwy oraz dodatkową część limitu w zależności od długości adresu URL, z którego został załadowany plik KML. W związku z tym liczba warstw, które możesz dodać, będzie się różnić w zależności od aplikacji. Przeciętnie możesz załadować od 10 do 20 warstw bez przekroczenia limitu. Jeśli nadal przekraczasz limit, spróbuj skrócić adresy URL plików KML za pomocą skróconego adresu URL. Możesz też utworzyć jeden plik KML, który będzie zawierać elementy NetworkLinks do poszczególnych adresów URL plików KML.
Informacje o wydajności i buforowaniu
Serwery Google będą tymczasowo przechowywać w pamięci podręcznej pliki KML, aby zmniejszyć obciążenie serwerów. Dzięki temu poprawi się też wydajność dla użytkowników, ponieważ będą oni otrzymywać oszczędzającą miejsce reprezentację odpowiednich segmentów pliku KML, gdy będą klikać mapę, przesuwać ją i powiększać.
Aby uzyskać najlepszą wydajność, zalecamy:
- Użyj odpowiedniego tagu
<expires>
w pliku KML.
KmlLayer
nie będzie używać nagłówków HTTP do podejmowania decyzji o tym, jak przechowywać w pamięci podręcznej pliki KML. - Nie generuj plików dynamicznie w momencie wysyłania żądania.
Zamiast tego wygeneruj pliki przed ich użyciem i prześlij je statycznie. Jeśli przesłanie pliku KML zajmuje serwerowi dużo czasu, ikonaKmlLayer
może się nie wyświetlić. - Nie próbuj pomijać pamięci podręcznej, chyba że wiesz na pewno, że plik został zaktualizowany.
Zawsze pomijanie pamięci podręcznej (np. przez dodanie losowego numeru lub czasu zegara użytkownika jako parametru zapytania) może łatwo spowodować przeciążenie Twoich serwerów, jeśli Twoja witryna nagle zyska popularność, a Ty będziesz serwować duże pliki KML.
Może to też spowodować, że pamięć podręczna będzie przekazywać użytkownikom nieaktualne dane, jeśli zegar któregoś z użytkowników jest nieprawidłowy, a tag<expires>
nie został prawidłowo ustawiony.
Zamiast tego opublikuj zaktualizowane pliki statyczne z nowym, oddzielnym numerem wersji i użyj kodu po stronie serwera, aby dynamicznie aktualizować adres URL przekazywany do funkcjiKmlLayer
z bieżącą wersją. - Ogranicz zmiany w plikach KML do jednej na minutę.
Jeśli łączny rozmiar wszystkich plików (w nieskompresowanej formie) przekracza 1 MB, limit zmienia się na jeden raz na 5 minut. - Korzystając z serwera danych geoprzestrzennych, nie używaj parametrów zapytań do ograniczania widoku warstw.
Zamiast tego możesz ograniczyć widoczny obszar mapy za pomocą zdarzeniabounds_changed
. Użytkownikom będą wysyłane tylko funkcje, które można wyświetlić 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
KmlLayer
z różnymi parametrami zapytania użyj wieluKmlLayer
dla każdej grupy funkcji, które użytkownicy mogą włączać i wyłączać. - Aby zmniejszyć rozmiar pliku, użyj skompresowanych plików KMZ.
- Jeśli używasz Google Cloud Storage lub innego rozwiązania do przechowywania danych w chmurze, nie używaj funkcji takich jak podpisane adresy URL ani tokenów tymczasowych, aby wymusić kontrolę dostępu. Mogą one niezamierzenie uniemożliwić buforowanie.
- Zmniejsz dokładność wszystkich punktów do odpowiedniej dokładności.
- Łączenie i upraszczanie geometrii podobnych obiektów, takich jak wielokąty i linie łamane.
- Usuń wszystkie nieużywane elementy i zasoby graficzne.
- Usuń nieobsługiwane elementy.
Jeśli potrzebujesz dostępu do danych prywatnych, chcesz zapobiec przechowywaniu w pamięci podręcznej lub wysłać widok w przeglądarce do serwera danych geoprzestrzennych jako parametr zapytania, zalecamy użycie warstw danych zamiast KmlLayer
. Spowoduje to, że przeglądarki użytkowników będą bezpośrednio przesyłać żądania zasobów do Twojego serwera WWW.
Obsługiwane elementy KML
Interfejs Maps JavaScript API obsługuje te elementy KML: Parser plików KML ignoruje bez powiadamiania tagi XML, których nie rozpoznaje.
- Oznaczenia miejsc
- Ikony
- Foldery
- HTML opisowy – zastępowanie elementów 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
Tabela poniżej zawiera pełne informacje o obsługiwanych elementach KML.
Element KML | Czy jest obsługiwane w interfejsie API? | Komentarz |
---|---|---|
<address> | nie | |
<AddressDetails> | nie | |
<Alias> | Nie dotyczy | Urządzenie <Model> nie jest obsługiwane |
<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 | Element <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; nie jest obsługiwany w elementach <IconStyle>, <ScreenOverlay> i <GroundOverlay> |
<colorMode> | nie | |
<cookie> | nie | |
<coordinates> | tak | |
<Create> | nie | |
<Data> | tak | |
<Usuń> | nie | |
<description> | tak | Treści HTML są dozwolone, ale są czyszczone w celu ochrony przed atakami z różnych przeglądarek. Zastępowanie elementów w postaci $[dataName] nie jest obsługiwane. |
<displayMode> | nie | |
<displayName> | nie | |
<Document> | częściowo | pośrednio, dzieci są obsługiwane; brak efektu jako element podrzędny innych funkcji |
<drawOrder> | nie | |
<east> | tak | |
<end> | Nie dotyczy | Element <TimeSpan> nie jest obsługiwany |
<expires> | tak | Szczegółowe informacje znajdziesz w sekcji Podsumowanie |
<ExtendedData> | częściowo | Obsługiwane są tylko elementy nietypowe <Data>, nieelementy <SimpleData> ani <Schema> oraz elementy zastępcze $[dataName] .
|
<extrude> | nie | |
<fill> | tak | |
<flyToView> | nie | |
<Folder> | tak | |
<geomColor> | nie | wycofano |
<GeometryCollection> | nie | wycofano |
<geomScale> | nie | wycofano |
<gridOrigin> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<GroundOverlay> | tak | nie można obracać. |
<h> | tak | wycofano |
<heading> | tak | |
wskazówka | tak | Obsługiwane: target=... |
<hotSpot> | tak | |
<href> | tak | |
<httpQuery> | nie | |
<Ikona> | tak | nie można obracać. |
<IconStyle> | tak | |
<ImagePyramid> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<innerBoundaryIs> | tak | domyślnie z elementu <LinearRing>, |
<ItemIcon> | Nie dotyczy | Tag <ListStyle> nie jest obsługiwany |
<key> | Nie dotyczy | <StyleMap> nie jest obsługiwany |
<kml> | tak | |
<labelColor> | nie | wycofano |
<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 | Tag <ListStyle> nie jest obsługiwany |
<ListStyle> | nie | |
<Location> | Nie dotyczy | Urządzenie <Model> nie jest obsługiwane |
<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 | wycofano |
<minAltitude> | tak | |
<minFadeExtent> | tak | |
<minLodPixels> | tak | |
<minRefreshPeriod> | nie | <NetworkLink> |
<Model> | nie | |
<MultiGeometry> | częściowo | renderowane, ale wyświetlane jako osobne funkcje w panelu po lewej stronie |
<name> | tak | |
<near> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<NetworkLink> | tak | |
<NetworkLinkControl> | częściowo | Tagi <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 pliku KML. W przypadku braku ustawień wygaśnięcia lub w ramach przedziału czasowego ważności Mapy Google mogą przechowywać w pamięci podręcznej dane pobrane z Internetu przez nieokreślony czas. Ponowne pobranie danych z Internetu można wymusić, zmieniając nazwę dokumentu i pobierając go pod innym adresem URL lub upewniając się, że dokument zawiera odpowiednie ustawienia wygaśnięcia. |
<north> | tak | |
<open> | tak | |
<Orientation> | Nie dotyczy | Urządzenie <Model> nie jest obsługiwane |
<outerBoundaryIs> | tak | domyślnie z poziomego rzędu <LinearRing>, |
<outline> | tak | |
<overlayXY> | nie | |
<Pair> | Nie dotyczy | <StyleMap> nie jest obsługiwany |
<phoneNumber> | nie | |
<PhotoOverlay> | nie | |
<Placemark> | tak | |
<Point> | tak | |
<Polygon> | tak | |
<PolyStyle> | tak | |
<range> | tak | |
<refreshInterval> | częściowo | Tylko w <Link>, nie w <Ikona> |
<refreshMode> | tak | Nagłówki HTTP nie są obsługiwane w trybie „onExpire”. Zobacz informacje o tagach <Update> i <expires> powyżej. |
<refreshVisibility> | nie | |
<Region> | tak | |
<ResourceMap> | Nie dotyczy | Urządzenie <Model> nie jest obsługiwane |
<rightFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<roll> | Nie dotyczy | Wartości <Camera> i <Model> nie są obsługiwane |
<rotation> | nie | |
<rotationXY> | nie | |
<Scale> | Nie dotyczy | Urządzenie <Model> nie jest obsługiwane |
<scale> | nie | |
<Schema> | nie | |
<SchemaData> | nie | |
<ScreenOverlay> | tak | nie można obracać. |
<screenXY> | nie | |
<shape> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<SimpleData> | Nie dotyczy | Tagi <SchemaData> nie są obsługiwane |
<SimpleField> | Nie dotyczy | Elementy <Schema> nie są obsługiwane |
<size> | tak | |
<Snippet> | tak | |
<south> | tak | |
<state> | Nie dotyczy | Tag <ListStyle> nie jest obsługiwany |
<Style> | tak | |
<StyleMap> | nie | Efekty najechania kursorem (podświetlenia) nie są obsługiwane |
<styleUrl> | Nie dotyczy | <StyleMap> nie jest obsługiwany |
<targetHref> | częściowo | obsługiwane w <Update>, a nie w <Alias> |
<tessellate> | nie | |
<text> | tak | Zastępowanie wartości $[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 |
<Aktualizuj> | częściowo | tylko zmiany stylu, nie <Create> ani <Delete> |
<Url> | tak | wycofano |
<value> | tak | |
<viewBoundScale> | nie | |
<viewFormat> | nie | |
<viewRefreshMode> | częściowo | Obsługiwana jest metoda „onStop” |
<viewRefreshTime> | tak | |
<ViewVolume> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwany |
<visibility> | częściowo | tak w przypadku <Folder> – znaczniki podrzędne dziedziczą widoczność |
<w> | tak | wycofano |
<west> | tak | |
<when> | Nie dotyczy | Wartość <TimeStamp> nie jest obsługiwana |
<width> | tak | |
<x> | tak | wycofano |
<y> | tak | wycofano |