Lớp KML và GeoRSS

Chọn nền tảng: Android iOS JavaScript

KmlLayer kết xuất các phần tử KML và GeoRSS thành một lớp phủ ô API JavaScript của Maps.

Tổng quan

Maps JavaScript API hỗ trợ định dạng dữ liệu KML và GeoRSS để hiển thị thông tin địa lý. Các định dạng dữ liệu này được hiển thị trên bản đồ bằng cách sử dụng đối tượng KmlLayer, có hàm khởi tạo lấy URL của tệp KML hoặc GeoRSS có thể truy cập công khai.

Lưu ý: Lớp KmlLayer tạo lớp phủ KML trong API JavaScript của Maps sử dụng một dịch vụ do Google lưu trữ để truy xuất và phân tích cú pháp các tệp KML để hiển thị. Do đó, bạn chỉ có thể hiển thị tệp KML nếu các tệp này được lưu trữ tại một URL có thể truy cập công khai và không yêu cầu xác thực để truy cập.

Nếu cần truy cập vào các tệp riêng tư, kiểm soát chi tiết bộ nhớ đệm hoặc gửi khung hiển thị của trình duyệt đến một máy chủ dữ liệu không gian địa lý dưới dạng một tham số truy vấn, bạn nên sử dụng các lớp dữ liệu thay vì KmlLayer. Thao tác này sẽ hướng trình duyệt của người dùng trực tiếp yêu cầu tài nguyên từ máy chủ web của bạn.

Maps JavaScript API chuyển đổi dữ liệu XML địa lý được cung cấp thành một biểu thị KML xuất hiện trên bản đồ bằng cách sử dụng lớp phủ xếp kề Maps JavaScript API. KML này có hình thức (và phần nào đó có hành vi) giống như các phần tử lớp phủ quen thuộc của Maps JavaScript API. Các phần tử <Placemark> KML và point GeoRSS được hiển thị dưới dạng điểm đánh dấu, ví dụ: các phần tử <LineString> được hiển thị dưới dạng đường nhiều đoạn và các phần tử <Polygon> được hiển thị dưới dạng đa giác. Tương tự, các phần tử <GroundOverlay> được kết xuất dưới dạng hình ảnh hình chữ nhật trên bản đồ. Tuy nhiên, điều quan trọng là những đối tượng này không phải là Markers, Polylines, Polygons hoặc GroundOverlays của Maps JavaScript API; thay vào đó, chúng được kết xuất thành một đối tượng duy nhất trên bản đồ.

Các đối tượng KmlLayer sẽ xuất hiện trên bản đồ sau khi bạn đặt thuộc tính map. Bạn có thể xoá các đối tượng này khỏi bản đồ bằng cách gọi setMap() truyền null. Đối tượng KmlLayer quản lý quá trình kết xuất các phần tử con này bằng cách tự động truy xuất các đối tượng thích hợp cho ranh giới đã cho của bản đồ. Khi ranh giới thay đổi, các đối tượng trong khung hiển thị hiện tại sẽ tự động được kết xuất.

Vì các thành phần trong KmlLayer được kết xuất theo yêu cầu, nên lớp này cho phép bạn dễ dàng quản lý việc kết xuất hàng nghìn điểm đánh dấu, đường nhiều đoạn và đa giác. Xin lưu ý rằng bạn không thể truy cập trực tiếp vào các đối tượng thành phần này, mặc dù mỗi đối tượng đều cung cấp các sự kiện nhấp chuột trả về dữ liệu trên các đối tượng riêng lẻ đó.

Các lựa chọn về lớp KML

Hàm khởi tạo KmlLayer() (không bắt buộc) truyền một số KmlLayerOptions:

  • map chỉ định Map để hiển thị KmlLayer. Bạn có thể ẩn một KmlLayer bằng cách đặt giá trị này thành null trong phương thức setMap().
  • preserveViewport chỉ định rằng bản đồ không được điều chỉnh theo ranh giới của nội dung KmlLayer khi hiển thị lớp. Theo mặc định, khi hiển thị một KmlLayer, bản đồ sẽ được thu phóng và định vị để hiển thị toàn bộ nội dung của lớp.
  • suppressInfoWindows cho biết các tính năng có thể nhấp trong KmlLayer không được kích hoạt việc hiển thị các đối tượng InfoWindow.

Ngoài ra, sau khi được kết xuất, KmlLayer sẽ chứa một thuộc tính metadata bất biến chứa tên, nội dung mô tả, đoạn trích và tác giả của lớp trong một chữ đối tượng KmlLayerMetadata. Bạn có thể kiểm tra thông tin này bằng phương thức getMetadata(). Vì việc kết xuất các đối tượng KmlLayer yêu cầu giao tiếp không đồng bộ với một máy chủ bên ngoài, nên bạn sẽ muốn theo dõi sự kiện metadata_changed. Sự kiện này sẽ cho biết rằng thuộc tính đã được điền sẵn.

Ví dụ sau đây tạo một KmlLayer từ nguồn cấp dữ liệu GeoRSS đã cho:

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>

Thử dùng mẫu

Ví dụ sau đây tạo một KmlLayer từ nguồn cấp dữ liệu KML đã cho:

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>

Thử dùng mẫu

Thông tin chi tiết về đối tượng KML

Vì KML có thể chứa một số lượng lớn các đối tượng, nên bạn không thể truy cập trực tiếp vào dữ liệu đối tượng từ đối tượng KmlLayer. Thay vào đó, khi các đối tượng được hiển thị, chúng sẽ được kết xuất để trông giống như các lớp phủ có thể nhấp của Maps JavaScript API. Theo mặc định, khi bạn nhấp vào từng đối tượng, một InfoWindow chứa thông tin KML <title><description> về đối tượng đó sẽ xuất hiện. Ngoài ra, khi bạn nhấp vào một đối tượng KML, hệ thống sẽ tạo ra một KmlMouseEvent, trong đó truyền thông tin sau:

  • position cho biết toạ độ vĩ độ/kinh độ để neo InfoWindow cho đối tượng KML này. Vị trí này thường là vị trí được nhấp cho đa giác, đường nhiều đoạn và GroundOverlay, nhưng là nguồn gốc thực sự cho các điểm đánh dấu.
  • pixelOffset cho biết độ lệch so với position ở trên để cố định "đuôi" InfoWindow. Đối với các đối tượng đa giác, độ lệch này thường là 0,0 nhưng đối với các điểm đánh dấu, độ lệch này bao gồm cả chiều cao của điểm đánh dấu.
  • featureData chứa cấu trúc JSON của KmlFeatureData.

Dưới đây là một đối tượng KmlFeatureData mẫu:

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

Ví dụ sau đây hiển thị văn bản <Description> của đối tượng KML trong một <div> bên khi đối tượng được nhấp vào:

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>

Thử dùng mẫu

Hạn chế về kích thước và độ phức tạp đối với việc kết xuất KML

Maps JavaScript API có giới hạn về kích thước và độ phức tạp của các tệp KML đã tải. Dưới đây là nội dung tóm tắt về các giới hạn hiện tại.

Lưu ý: Các hạn mức này có thể thay đổi bất cứ lúc nào.

Kích thước tối đa của tệp đã tìm nạp (KML thô, GeoRSS thô hoặc KMZ đã nén)
3MB
Kích thước tối đa của tệp KML đã giải nén
10MB
Kích thước tối đa của tệp hình ảnh chưa nén trong tệp KMZ
500 KB cho mỗi tệp
Số lượng đường liên kết tối đa trong mạng
10
Tổng số lượng đối tượng địa lý tối đa trong toàn tài liệu
1.000
Số lượng lớp KML
Có giới hạn về số lượng Lớp KML có thể hiển thị trên một Google Maps. Nếu vượt quá hạn mức này, không có lớp nào của bạn sẽ xuất hiện trên bản đồ và một lỗi sẽ được báo cáo trong bảng điều khiển JavaScript của trình duyệt web. Giới hạn này dựa trên sự kết hợp giữa số lượng lớp KmlLayer đã tạo và tổng độ dài của tất cả các URL được dùng để tạo những lớp đó. Mỗi KmlLayer mới mà bạn tạo sẽ chiếm một phần trong giới hạn của lớp và một phần nữa trong giới hạn tuỳ thuộc vào độ dài của URL nơi tệp KML được tải. Do đó, số lượng lớp bạn có thể thêm sẽ tuỳ thuộc vào ứng dụng; trung bình, bạn có thể tải từ 10 đến 20 lớp mà không vượt quá giới hạn. Nếu bạn vẫn gặp phải giới hạn này, hãy sử dụng một dịch vụ rút ngắn URL để rút ngắn các URL KML. Ngoài ra, bạn có thể tạo một tệp KML duy nhất bao gồm NetworkLinks cho từng URL KML.

Những điểm cần lưu ý về hiệu suất và bộ nhớ đệm

Các máy chủ của Google sẽ tạm thời lưu vào bộ nhớ đệm các tệp KML để giảm tải cho máy chủ của bạn. Điều này cũng sẽ cải thiện hiệu suất cho người dùng bằng cách phân phát một bản trình bày tiết kiệm không gian về các phân đoạn thích hợp trong tệp KML của bạn, khi người dùng nhấp vào, di chuyển và thu phóng bản đồ.

Để đạt được hiệu suất tốt nhất, bạn nên:

  • Sử dụng thẻ <expires> thích hợp trong KML.

    KmlLayer sẽ không sử dụng tiêu đề HTTP khi quyết định cách lưu vào bộ nhớ đệm các tệp KML.
  • Không tạo tệp một cách linh động tại thời điểm yêu cầu.

    Thay vào đó, hãy tạo các tệp trước khi cần và phân phát các tệp đó một cách tĩnh. Nếu máy chủ của bạn mất nhiều thời gian để truyền tệp KML, thì biểu tượng KmlLayer có thể không xuất hiện.
  • Đừng cố gắng bỏ qua bộ nhớ đệm trừ phi bạn biết chắc chắn rằng tệp của mình đã được cập nhật.

    Việc luôn bỏ qua bộ nhớ đệm (ví dụ: bằng cách thêm một số ngẫu nhiên hoặc thời gian đồng hồ của người dùng làm tham số truy vấn) có thể dễ dàng khiến máy chủ của bạn bị quá tải nếu trang web của bạn đột nhiên trở nên phổ biến và bạn đang phân phát các tệp KML lớn.

    Nếu đồng hồ của người dùng không chính xác và thẻ <expires> chưa được đặt đúng cách, thì vấn đề này cũng có thể khiến bộ nhớ đệm cung cấp dữ liệu cũ cho người dùng.

    Thay vào đó, hãy xuất bản các tệp tĩnh đã cập nhật bằng một số phiên bản mới, riêng biệt và sử dụng mã phía máy chủ để cập nhật động URL được truyền đến KmlLayer bằng phiên bản hiện tại.
  • Giới hạn số lần thay đổi đối với tệp KML là một lần mỗi phút.

    Nếu tổng kích thước của tất cả các tệp lớn hơn 1 MB (không nén), hãy giới hạn số lần thay đổi ở mức 1 lần mỗi 5 phút.
  • Khi sử dụng máy chủ dữ liệu không gian địa lý, hãy tránh sử dụng các tham số truy vấn để giới hạn khung hiển thị của các lớp.

    Thay vào đó, bạn có thể giới hạn khung hiển thị bản đồ bằng sự kiện bounds_changed. Người dùng sẽ chỉ nhận được những tính năng có thể hiển thị tự động.

    Nếu có một lượng lớn dữ liệu trong máy chủ dữ liệu không gian địa lý, hãy cân nhắc việc sử dụng các lớp dữ liệu thay vì các lớp dữ liệu.
  • Khi sử dụng máy chủ dữ liệu không gian địa lý, hãy sử dụng nhiều KmlLayer cho mỗi nhóm đối tượng mà bạn muốn cho phép người dùng bật/tắt, thay vì một KmlLayer duy nhất có các tham số truy vấn khác nhau.
  • Sử dụng tệp KMZ nén để giảm kích thước tệp.
  • Nếu bạn đang sử dụng Google Cloud Storage hoặc một giải pháp lưu trữ đám mây khác, hãy tránh sử dụng các tính năng như URL đã ký hoặc mã thông báo tạm thời để thực thi các chế độ kiểm soát quyền truy cập. Những điều này có thể vô tình ngăn chặn việc lưu vào bộ nhớ đệm.
  • Giảm độ chính xác của tất cả các điểm thành độ chính xác phù hợp.
  • Hợp nhất và đơn giản hoá hình học của các đối tượng tương tự, chẳng hạn như đa giác và đường nhiều đoạn.
  • Xoá mọi phần tử hoặc tài nguyên hình ảnh không dùng đến.
  • Xoá mọi phần tử không được hỗ trợ.

Nếu cần truy cập vào dữ liệu riêng tư, ngăn chặn việc lưu vào bộ nhớ đệm hoặc gửi khung hiển thị trình duyệt đến một máy chủ dữ liệu không gian địa lý dưới dạng một tham số truy vấn, bạn nên sử dụng lớp dữ liệu thay vì KmlLayer. Thao tác này sẽ hướng trình duyệt của người dùng trực tiếp yêu cầu tài nguyên từ máy chủ web của bạn.

Các phần tử KML được hỗ trợ

Maps JavaScript API hỗ trợ các phần tử KML sau đây. Trình phân tích cú pháp KML thường bỏ qua trong im lặng những thẻ XML mà trình này không hiểu.

  • Dấu vị trí
  • Biểu tượng
  • Thư mục
  • HTML mô tả – Thay thế thực thể thông qua <BalloonStyle> và <text>
  • KMZ (KML đã nén, bao gồm cả hình ảnh đính kèm)
  • Hình nhiều đường và đa giác
  • Kiểu hình nhiều đường và đa giác, bao gồm màu, phủ màu và độ mờ
  • Liên kết mạng để nhập dữ liệu động
  • Lớp phủ mặt đất và lớp phủ màn hình

Bảng sau đây cung cấp thông tin chi tiết về các phần tử KML được hỗ trợ.

Phần tử KML Có được hỗ trợ trong API không? Bình luận
<address> không
<AddressDetails> không
<Alias> Không áp dụng Không được hỗ trợ <Model>
<altitude> không
<altitudeMode> không
<atom:author>
<atom:link>
<atom:name>
<BalloonStyle> một phần chỉ hỗ trợ <text>
<begin> Không áp dụng Không được hỗ trợ <TimeSpan>
<bgColor> không
<bottomFov> Không áp dụng Không hỗ trợ <PhotoOverlay>
<Camera> không
<Change> một phần chỉ hỗ trợ thay đổi kiểu
<color> một phần bao gồm #AABBGGRR và #BBGGRR; không được hỗ trợ trong <IconStyle>, <ScreenOverlay> và <GroundOverlay>
<colorMode> không
<cookie> không
<coordinates>
<Tạo> không
<Data>
<Delete> không
<description> Nội dung HTML được cho phép nhưng sẽ được dọn dẹp để bảo vệ khỏi các cuộc tấn công trên nhiều trình duyệt. Không hỗ trợ việc thay thế thực thể theo dạng $[dataName].
<displayMode> không
<displayName> không
<Document> một phần ngầm, các thành phần con được hỗ trợ; không có hiệu ứng nào khi là thành phần con của các Thành phần khác
<drawOrder> không
<east>
<end> Không áp dụng Không được hỗ trợ <TimeSpan>
<expires> xem phần Tóm tắt để biết thông tin chi tiết
<ExtendedData> một phần chỉ <Data> không có kiểu, không có <SimpleData> hoặc <Schema> và không hỗ trợ các thay thế thực thể có dạng $[dataName].
<extrude> không
<fill>
<flyToView> không
<Folder>
<geomColor> không không dùng nữa
<GeometryCollection> không không dùng nữa
<geomScale> không không dùng nữa
<gridOrigin> Không áp dụng Không hỗ trợ <PhotoOverlay>
<GroundOverlay> không xoay được
<h> không dùng nữa
<heading>
gợi ý target=... được hỗ trợ
<hotSpot>
<href>
<httpQuery> không
<Icon> không xoay được
<IconStyle>
<ImagePyramid> Không áp dụng Không hỗ trợ <PhotoOverlay>
<innerBoundaryIs> một cách ngầm định từ thứ tự <LinearRing>
<ItemIcon> Không áp dụng Không hỗ trợ <ListStyle>
<key> Không áp dụng Không hỗ trợ <StyleMap>
<kml>
<labelColor> không không dùng nữa
<LabelStyle> không
<latitude>
<LatLonAltBox>
<LatLonBox>
<leftFov> Không áp dụng Không hỗ trợ <PhotoOverlay>
<LinearRing>
<LineString>
<LineStyle>
<Link>
<linkDescription> không
<linkName> không
<linkSnippet> không
<listItemType> Không áp dụng Không hỗ trợ <ListStyle>
<ListStyle> không
<Location> Không áp dụng Không được hỗ trợ <Model>
<Lod>
<longitude>
<LookAt> không
<maxAltitude>
<maxFadeExtent>
<maxHeight> Không áp dụng Không hỗ trợ <PhotoOverlay>
<maxLodPixels>
<maxSessionLength> không
<maxWidth> Không áp dụng Không hỗ trợ <PhotoOverlay>
<message> không
<Metadata> không không dùng nữa
<minAltitude>
<minFadeExtent>
<minLodPixels>
<minRefreshPeriod> không <NetworkLink>
<Model> không
<MultiGeometry> một phần được kết xuất nhưng hiển thị dưới dạng các tính năng riêng biệt trong bảng điều khiển bên trái
<name>
<near> Không áp dụng Không hỗ trợ <PhotoOverlay>
<NetworkLink>  
<NetworkLinkControl> một phần <Update> và <expires> được hỗ trợ một phần. API này bỏ qua chế độ cài đặt thời gian hết hạn trong tiêu đề HTTP nhưng sử dụng chế độ cài đặt thời gian hết hạn được chỉ định trong KML. Nếu không có chế độ cài đặt hết hạn hoặc trong khoảng thời gian hợp lệ, Google Maps có thể lưu vào bộ nhớ đệm dữ liệu được tìm nạp từ Internet trong khoảng thời gian không xác định. Bạn có thể buộc tìm nạp lại dữ liệu từ Internet bằng cách đổi tên tài liệu và tìm nạp tài liệu đó theo một URL khác hoặc bằng cách đảm bảo rằng tài liệu có chế độ cài đặt hết hạn thích hợp.
<north>
<open>
<Orientation> Không áp dụng Không được hỗ trợ <Model>
<outerBoundaryIs> một cách ngầm định từ thứ tự <LinearRing>
<outline>
<overlayXY> không
<Pair> Không áp dụng Không hỗ trợ <StyleMap>
<phoneNumber> không
<PhotoOverlay> không
<Placemark>
<Point>
<Polygon>
<PolyStyle>
<range>
<refreshInterval> một phần Chỉ có trong <Link>; không có trong <Icon>
<refreshMode> Tiêu đề HTTP không được hỗ trợ cho chế độ "onExpire". Xem ghi chú về <Update> và <expires> ở trên.
<refreshVisibility> không
<Region>
<ResourceMap> Không áp dụng Không được hỗ trợ <Model>
<rightFov> Không áp dụng Không hỗ trợ <PhotoOverlay>
<roll> Không áp dụng Không được hỗ trợ <Camera> và <Model>
<rotation> không
<rotationXY> không
<Scale> Không áp dụng Không được hỗ trợ <Model>
<scale> không
<Schema> không
<SchemaData> không
<ScreenOverlay> không xoay được
<screenXY> không
<shape> Không áp dụng Không hỗ trợ <PhotoOverlay>
<SimpleData> Không áp dụng Không hỗ trợ <SchemaData>
<SimpleField> Không áp dụng Không được hỗ trợ <Schema>
<size>
<Đoạn trích>
<south>
<state> Không áp dụng Không hỗ trợ <ListStyle>
<Style>
<StyleMap> không không hỗ trợ hiệu ứng di chuột (làm nổi bật)
<styleUrl> Không áp dụng Không hỗ trợ <StyleMap>
<targetHref> một phần được hỗ trợ trong <Update>, không được hỗ trợ trong <Alias>
<tessellate> không
<text> không hỗ trợ thay thế $[geDirections]
<textColor> không
<tileSize> Không áp dụng Không hỗ trợ <PhotoOverlay>
<tilt> không
<TimeSpan> không
<TimeStamp> không
<topFov> Không áp dụng Không hỗ trợ <PhotoOverlay>
<Cập nhật> một phần chỉ thay đổi kiểu, không phải <Tạo> hoặc <Xoá>
<Url> không dùng nữa
<value>
<viewBoundScale> không
<viewFormat> không
<viewRefreshMode> một phần Hỗ trợ "onStop"
<viewRefreshTime>
<ViewVolume> Không áp dụng Không hỗ trợ <PhotoOverlay>
<visibility> một phần có trên <Folder> – các dấu vị trí con sẽ kế thừa khả năng hiển thị của chúng
<w> không dùng nữa
<west>
<when> Không áp dụng Không được hỗ trợ <TimeStamp>
<width>
<x> không dùng nữa
<y> không dùng nữa