KmlLayer
renderuje elementy KML i GeoRSS w nakładce kafelków interfejsu Maps JavaScript API.
Przegląd
Interfejs Maps JavaScript API obsługuje formaty danych KML i GeoRSS podczas wyświetlania informacji geograficznych. Te formaty danych są wyświetlane na mapie za pomocą obiektu KmlLayer
, którego konstruktor wykorzystuje 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.
Dlatego można wyświetlać pliki KML tylko wtedy, gdy są 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ęciami podręcznymi lub wysyłania widocznego obszaru przeglądarki do serwera danych geoprzestrzennych jako parametru zapytania, zalecamy używanie warstw danych zamiast KmlLayer
. Spowoduje to przekierowanie przeglądarek użytkowników na bezpośrednie wysyłanie żądań zasobów do Twojego 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 kafelka interfejsu Maps JavaScript API. Ten plik KML wygląda (i pewnie działa) jak znajome elementy nakładek interfejsu Maps JavaScript API. Elementy KML <Placemark>
i GeoRSS point
są renderowane jako znaczniki, na przykład elementy <LineString>
są renderowane w postaci linii łamanych, a <Polygon>
– jako wielokąty. Podobnie elementy <GroundOverlay>
są renderowane na mapie jako prostokątne obrazy. Co ważne, te obiekty nie są interfejsami Maps JavaScript API Markers
, Polylines
, Polygons
ani GroundOverlays
. Zamiast tego są renderowane w jednym obiekcie na mapie.
Obiekty KmlLayer
pojawią się na mapie, gdy ustawisz ich właściwość map
. Możesz je usunąć z mapy, wywołując
setMap()
przez null
. Obiekt KmlLayer
zarządza renderowaniem tych elementów podrzędnych, automatycznie pobierając odpowiednie cechy dla określonych granic mapy. Gdy granice się zmieniają, obiekty w bieżącym widocznym obszarze są automatycznie renderowane.
Komponenty w elemencie KmlLayer
są renderowane na żądanie, więc 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, chociaż każdy z nich zapewnia zdarzenia kliknięcia, które zwracają dane o tych pojedynczych obiektach.
Opcje warstwy KML
Konstruktor KmlLayer()
przekazuje opcjonalnie liczbę KmlLayerOptions
:
map
określa poleMap
, na którym ma zostać wyrenderowanaKmlLayer
. 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ściKmlLayer
. Domyślnie podczas wyświetlania elementuKmlLayer
mapa jest powiększona i przesuwana tak, by pokazać całą zawartość warstwy.suppressInfoWindows
wskazuje, że klikalne funkcje w obrębieKmlLayer
nie powinny wywoływać wyświetlania obiektówInfoWindow
.
Dodatkowo po wyrenderowaniu KmlLayer
zawiera stałą właściwość metadata
zawierającą nazwę, opis, fragment i autora warstwy w literalu obiektu KmlLayerMetadata
. Możesz sprawdzić te informacje za pomocą metody getMetadata()
. Renderowanie obiektów KmlLayer
wymaga asynchronicznej komunikacji z serwerem zewnętrznym, dlatego warto nasłuchiwać zdarzenia metadata_changed
, co będzie oznaczało, że właściwość została wypełniona.
W poniższym przykładzie konstruujemy pole KmlLayer
na podstawie podanego 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> <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>
Zobacz próbkę
Ten przykład tworzy obiekt KmlLayer
na podstawie podanego pliku danych 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>
Zobacz próbkę
Szczegóły funkcji KML
Ponieważ plik KML może obejmować dużą liczbę obiektów, możesz nie mieć dostępu do danych cech bezpośrednio z obiektu KmlLayer
. Podczas wyświetlania obiektów są one renderowane jak klikalne nakładki Maps JavaScript API.
Kliknięcie domyślnie konkretnego obiektu powoduje wyświetlenie pliku InfoWindow
zawierającego informacje o nim w pliku KML <title>
i <description>
.
Dodatkowo kliknięcie obiektu KML powoduje wygenerowanie obiektu KmlMouseEvent
, który przekazuje następujące informacje:
position
wskazuje współrzędne długości i szerokości geograficznej, na których ma zostać zakotwiczony elementInfoWindow
dla tej funkcji KML. Ta lokalizacja jest zwykle klikniętą lokalizacją w przypadku wielokątów, linii łamanych i nakładek podłoża, ale jest to prawdziwe położenie znaczników.pixelOffset
wskazuje przesunięcie względem powyższego elementuposition
, aby zakotwiczyć elementInfoWindow
. W przypadku obiektów wielokątnych to przesunięcie wynosi zwykle0,0
, ale w przypadku znaczników obejmuje wysokość znacznika.featureData
zawiera strukturę JSONKmlFeatureData
.
Przykładowy obiekt KmlFeatureData
jest widoczny poniżej:
{ author: { email: "nobody@google.com", name: "Mr Nobody", uri: "http://example.com" }, description: "description", id: "id", infoWindowHtml: "html", name: "name", snippet: "snippet" }
Ten przykład powoduje wyświetlenie tekstu funkcji KML <Description>
w obrębie boku <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>
Zobacz próbkę
Ograniczenia dotyczące rozmiaru i złożoności renderowania KML
Interfejs Maps JavaScript API ma ograniczenia dotyczące rozmiaru i złożoności wczytywanych plików KML. Poniżej znajduje się podsumowanie obecnych limitów.
Uwaga: te limity mogą się zmienić w każdej chwili.
- 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. Po przekroczeniu tego limitu żadna z Twoich warstw nie pojawi się na mapie, a w konsoli JavaScript Twojej przeglądarki zostanie zgłoszony błąd. Limit jest obliczany 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 obiektKmlLayer
, który utworzysz, będzie zajmować część limitu warstwy i kolejną część limitu w zależności od długości adresu URL, z którego wczytano plik KML. Oznacza to, że liczba warstw, które możesz dodać, różni się w zależności od aplikacji. Średnio powinno udać się wczytać od 10 do 20 warstw bez przekraczania limitu. Jeśli nadal osiągniesz limit, użyj narzędzia do skracania adresów URL, aby skrócić adresy URL KML. Możesz też utworzyć pojedynczy plik KML zawierający obiekty NetworkLinks z poszczególnymi adresami URL KML.
Uwagi na temat wydajności i buforowania
Serwery Google tymczasowo przechowują pliki KML w pamięci podręcznej, aby zmniejszyć ich obciążenie. Zwiększy to także wydajność użytkowników, ponieważ odpowiednie segmenty z pliku KML będą wyświetlane w zaoszczędzonej przestrzeni, gdy użytkownicy będą klikać, przesuwać i powiększać mapę.
Aby uzyskać najlepszą skuteczność, zalecamy:
- Użyj odpowiedniego tagu
<expires>
w pliku KML.KmlLayer
nie będzie używać nagłówków HTTP przy wyborze sposobu buforowania 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 trwa zbyt długo,KmlLayer
może się nie wyświetlić. - Nie próbuj omijać pamięci podręcznych, jeśli nie masz pewności, że plik został zaktualizowany.
Pomijanie pamięci podręcznych (na przykład przez dodanie losowej liczby lub czasu zegara użytkownika jako parametru zapytania) może łatwo spowodować przeciążenie Twoich serwerów, jeśli witryna nagle stanie się popularna i będziesz obsługiwać duże pliki KML.
Może też powodować wyświetlanie z pamięci podręcznej nieaktualnych danych użytkownikom, jeśli zegar któregoś z użytkowników jest ustawiony nieprawidłowo, a tag<expires>
nie jest prawidłowo skonfigurowany.
Zamiast tego opublikuj zaktualizowane pliki statyczne z nowym, osobnym numerem wersji i użyj kodu po stronie serwera, aby dynamicznie aktualizować adres URL przekazywany doKmlLayer
za pomocą bieżącej wersji. - Ogranicz zmiany w plikach KML do raz na minutę.
Jeśli łącznie wszystkie pliki mają więcej niż 1 MB (po zdekompresowaniu), ogranicz zmiany do jednego miejsca na 5 minut. - Gdy korzystasz z serwera danych geoprzestrzennych, unikaj używania parametrów zapytania do ograniczania widocznego obszaru warstw.
Zamiast tego możesz ograniczyć widoczny na mapie za pomocą zdarzeniabounds_changed
. Użytkownicy otrzymają tylko te funkcje, które mogą być wyświetlane automatycznie.
Jeśli na serwerze danych geoprzestrzennych przechowywano dużo danych, rozważ użycie warstw danych. - Gdy korzystasz z serwera danych geoprzestrzennych, zamiast pojedynczego obiektu
KmlLayer
z różnymi parametrami zapytania, używaj wielu elementówKmlLayer
dla każdej grupy funkcji, które użytkownicy mogą przełączać. - Użyj skompresowanych plików KMZ, aby zmniejszyć ich rozmiar.
- 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 lub tokeny tymczasowe, aby wymuszać kontrolę dostępu. Mogą one nieumyślnie zapobiegać buforowaniu.
- Zmniejsz precyzję wszystkich punktów do odpowiedniej precyzji.
- Scal i uprość geometrię podobnych obiektów, takich jak wielokąty i linie łamane.
- Usuń wszystkie nieużywane elementy lub zasoby obrazu.
- Usuń wszystkie nieobsługiwane elementy.
Jeśli chcesz uzyskać dostęp do prywatnych danych, zapobiec buforowaniu lub wysyłać jako parametr zapytania widoczny obszar przeglądarki do serwera danych geoprzestrzennych, zalecamy użycie warstw danych zamiast KmlLayer
. Spowoduje to przekierowanie przeglądarek użytkowników na bezpośrednie wysyłanie żądań 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 – zastępowanie encji przy użyciu elementó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 szczegółowe informacje na temat obsługiwanych elementów KML.
Element KML | Obsługiwane w interfejsie API? | Komentarz |
---|---|---|
<address> | nie | |
<AddressDetails> | nie | |
<Alias> | Nie dotyczy | Model <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 ciąg <text> |
<begin> | Nie dotyczy | Parametr <TimeSpan> nie jest obsługiwany |
<bgColor> | nie | |
<bottomFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<Camera> | nie | |
<Zmień> | częściowo | obsługiwane są tylko zmiany stylu |
<color> | częściowo | zawiera hashtagi #AABBGGRR i #BBGGRR; nieobsługiwane w przypadku elementów <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ą poddawane dezynfekcji, co ma na celu ochronę przed atakami z różnych przeglądarek. Zastępowanie encji formularza $[dataName] nie jest obsługiwane. |
<displayMode> | nie | |
<displayName> | nie | |
<Document> | częściowo | domyślnie dzieci są obsługiwane; nie ma wpływu na działanie funkcji podrzędnych wobec innych funkcji |
<drawOrder> | nie | |
<east> | tak | |
<end> | Nie dotyczy | Parametr <TimeSpan> nie jest obsługiwany |
<expires> | tak | szczegóły znajdziesz w sekcji Podsumowanie |
<ExtendedData> | częściowo | bez typu <Data>, bez elementów <SimpleData> ani <Schema> oraz zamienniki encji w formularzu $[dataName] nie są obsługiwane.
|
<extrude> | nie | |
<fill> | tak | |
<flyToView> | nie | |
<Folder> | tak | |
<geomColor> | nie | wycofano |
<GeometryCollection> | nie | wycofano |
<geomScale> | nie | wycofano |
<gridOrigin> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<GroundOverlay> | tak | Nie można obrócić |
<h> | tak | wycofano |
<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ługiwana. |
<innerBoundaryIs> | tak | domyślnie z kolejności <LinearRing> |
<ItemIcon> | Nie dotyczy | Element <ListStyle> nie jest obsługiwany |
<key> | Nie dotyczy | Element <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ługiwana. |
<LinearRing> | tak | |
<LineString> | tak | |
<LineStyle> | tak | |
<Link> | tak | |
<linkDescription> | nie | |
<linkName> | nie | |
<linkSnippet> | nie | |
<listItemType> | Nie dotyczy | Element <ListStyle> nie jest obsługiwany |
<ListStyle> | nie | |
<Lokalizacja> | Nie dotyczy | Model <Model> nie jest obsługiwany |
<Lod> | tak | |
<longitude> | tak | |
<LookAt> | nie | |
<maxAltitude> | tak | |
<maxFadeExtent> | tak | |
<maxHeight> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<maxLodPixels> | tak | |
<maxSessionLength> | nie | |
<maxWidth> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<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 lewym panelu bocznym |
<name> | tak | |
<w pobliżu> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<NetworkLink> | tak | |
<NetworkLinkControl> | częściowo | <Update> i <expires> są częściowo obsługiwane. Interfejs API ignoruje ustawienia wygaśnięcia ważności w nagłówkach HTTP, ale używa ustawień daty wygaśnięcia określonej w pliku KML. W przypadku braku ustawień wygaśnięcia lub w okresie ważności Mapy Google mogą buforować dane pobrane z internetu przez nieokreślony czas. Ponowne pobranie danych z internetu może być wymuszone przez zmianę nazwy dokumentu i pobranie go pod innym adresem URL lub przez sprawdzenie, czy dokument ma odpowiednie ustawienia wygaśnięcia. |
<north> | tak | |
<open> | tak | |
<Orientation> | Nie dotyczy | Model <Model> nie jest obsługiwany |
<outerBoundaryIs> | tak | domyślnie z kolejności <LinearRing> |
<outline> | tak | |
<overlayXY> | nie | |
<Pair> | Nie dotyczy | Element <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”. Zobacz uwagi do elementów <Update> i <expires> powyżej. |
<refreshVisibility> | nie | |
<Region> | tak | |
<ResourceMap> | Nie dotyczy | Model <Model> nie jest obsługiwany |
<rightFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<roll> | Nie dotyczy | Parametry <Camera> i <Model> nie są obsługiwane. |
<rotation> | nie | |
<rotationXY> | nie | |
<Skala> | Nie dotyczy | Model <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ługiwana. |
<SimpleData> | Nie dotyczy | Elementy <SchemaData> nie są obsługiwane |
<SimpleField> | Nie dotyczy | Elementy <Schema> nie są obsługiwane |
<size> | tak | |
<Snippet> | tak | |
<south> | tak | |
<state> | Nie dotyczy | Element <ListStyle> nie jest obsługiwany |
<Style> | tak | |
<StyleMap> | nie | Efekty po najechaniu myszą nie są obsługiwane |
<styleUrl> | Nie dotyczy | Element <StyleMap> nie jest obsługiwany |
<targetHref> | częściowo | obsługiwane w aktualizacji <Update>, a nie w regionie <Alias>. |
<tessellate> | nie | |
<text> | tak | zamiana elementu $[geDirections] nie jest obsługiwana |
<textColor> | nie | |
<tileSize> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<tilt> | nie | |
<TimeSpan> | nie | |
<TimeStamp> | nie | |
<topFov> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<Aktualizacja> | częściowo | tylko zmiany stylu, a nie <Create> ani <Delete> |
<Url> | tak | wycofano |
<value> | tak | |
<viewBoundScale> | nie | |
<viewFormat> | nie | |
<viewRefreshMode> | częściowo | Opcja „onStop” jest obsługiwana |
<viewRefreshTime> | tak | |
<ViewVolume> | Nie dotyczy | <PhotoOverlay> nie jest obsługiwana. |
<visibility> | częściowo | tak w <Folderze> – podrzędne oznaczenia miejsc dziedziczą swoją widoczność |
<w> | tak | wycofano |
<west> | tak | |
<when> | Nie dotyczy | Parametr <TimeStamp> nie jest obsługiwany |
<width> | tak | |
<x> | tak | wycofano |
<y> | tak | wycofano |