Lớp KML và GeoRSS

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

KmlLayer hiển thị các phần tử KML và GeoRSS vào một lớp phủ ô API JavaScript của Maps.

Tổng quan

API JavaScript của Maps hỗ trợ các định dạng dữ liệu KML và GeoRSS để hiển thị thông tin địa lý. Những đị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, trong đó hàm khởi tạo sẽ 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 dịch vụ do Google lưu trữ để truy xuất và phân tích cú pháp các tệp KML để kết xuất. Do đó, chỉ có thể hiển thị các tệp KML nếu các tệp đó được lưu trữ tại một URL có thể truy cập công khai không yêu cầu xác thực để truy cập.

Nếu bạn cần quyề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 nhìn của trình duyệt đến máy chủ dữ liệu không gian địa lý dưới dạng 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.

API JavaScript của Maps chuyển đổi dữ liệu XML được cung cấp về địa lý thành một bản trình bày KML hiển thị trên bản đồ bằng cách sử dụng lớp phủ xếp kề API JavaScript của Maps. KML này trông (và có phần hành vi) giống như các phần tử lớp phủ API Maps JavaScript quen thuộc. Các phần tử KML <Placemark> và GeoRSS point đượ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 hình nhiều đường 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 hiển thị 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à các đối tượng này không phải là API JavaScript của Maps Markers, Polylines, Polygons hoặc GroundOverlays; thay vào đó, chúng được hiển thị 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 cho các đối tượng đó. Bạn có thể xoá các đối tượng này khỏi bản đồ bằng cách gọi setMap() với tham số là 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 tính năng thích hợp cho các ranh giới đã cho của bản đồ. Khi giới hạn thay đổi, các tính năng trong khung nhìn hiện tại sẽ tự động hiển thị.

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, hình nhiều đường 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 cấu thành 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 về các đối tượng riêng lẻ đó.

Tuỳ chọn lớp KML

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

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

Ngoài ra, sau khi được hiển thị, KmlLayer chứa một thuộc tính metadata không thể thay đổi chứa tên, nội dung mô tả, đoạn mã và tác giả của lớp trong một giá trị cố định đố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 hiển thị các đối tượng KmlLayer yêu cầu phải giao tiếp không đồng bộ với máy chủ bên ngoài, nên bạn cần theo dõi sự kiện metadata_changed để biết rằng thuộc tính đã được điền sẵn.

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

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>

Thử mẫu

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

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>

Thử mẫu

Chi tiết tính năng KML

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

  • position cho biết toạ độ vĩ độ/kinh độ để neo InfoWindow cho tính năng KML này. Vị trí này thường là vị trí được nhấp cho đa giác, hình nhiều đường và GroundOverlays, nhưng là nguồn gốc thực sự của các điểm đánh dấu.
  • pixelOffset cho biết độ lệch so với position ở trên để neo "đ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 sẽ bao gồm chiều cao của điểm đánh dấu.
  • featureData chứa cấu trúc JSON là 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 tính năng KML trong <div> cạnh khi tính năng này đượ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>
    <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>

Thử mẫu

Các hạn chế về kích thước và độ phức tạp khi hiển thị KML

API JavaScript của Maps có cá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à bản tóm tắt về các giới hạn hiện tại.

Lưu ý: Các giới hạn 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 mỗi tệp
Số lượng đường liên kết mạng tối đa
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ớp KML
Có giới hạn về số lượng Lớp KML có thể hiển thị trên một bản đồ của Google. Nếu bạn vượt quá giới hạn này, sẽ không có lớp nào xuất hiện trên bản đồ và lỗi sẽ được báo cáo trong bảng điều khiển JavaScript của trình duyệt web của bạn. Giới hạn này dựa trên sự kết hợp giữa số lượng lớp KmlLayer được tạo và tổng độ dài của tất cả URL được dùng để tạo các lớp đó. Mỗi KmlLayer mới được tạo sẽ chiếm một phần giới hạn cho lớp và một phần nữa của 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ẽ khác nhau tuỳ theo ứng dụng. Trung bình, bạn có thể tải từ 10 đến 20 lớp mà không đạt đến giới hạn. Nếu bạn vẫn đạt đến giới hạn, hãy sử dụng trình rút gọn URL để rút ngắn các URL KML. Ngoài ra, hãy tạo một tệp KML duy nhất bao gồm NetworkLinks vào các URL KML riêng lẻ.

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

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

Để 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 tệp KML vào bộ nhớ đệm.
  • Đừng tạo tệp độ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 đó theo 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, KmlLayer có thể sẽ không hiển thị.
  • Đừng tìm cách bỏ qua bộ nhớ đệm trừ phi bạn biết chắc rằng tệp của mình đã được cập nhật.

    Luôn bỏ qua bộ nhớ đệm (ví dụ: bằng cách thêm một số ngẫu nhiên hoặc giờ đồ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ủ bị quá tải nếu trang web của bạn đột nhiên phổ biến và bạn đang phân phát các tệp KML có kích thước lớn.

    Điều này cũng có thể khiến bộ nhớ đệm phân phát dữ liệu cũ cho người dùng 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.

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

    Nếu tất cả các tệp có tổng kích thước lớn hơn 1 MB (không nén), hãy giới hạn tần suất thay đổi mỗi 5 phút một lần.
  • 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 nhìn của các lớp.

    Thay vào đó, bạn có thể giới hạn khung nhìn 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ý của bạn, hãy cân nhắc sử dụng lớp dữ liệu để thay thế.
  • 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 tính năng mà bạn muốn cho phép người dùng chuyển đổi, 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 dùng Google Cloud Storage hoặc một giải pháp lưu trữ trên đá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 để kiểm soát quyền truy cập. Các tệp này có thể vô tình ngăn việc lưu vào bộ nhớ đệm.
  • Giảm độ chính xác của mọi điểm xuống một độ chính xác thích 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ự nhau, chẳng hạn như đa giác và hình nhiều đường.
  • 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 cá nhân, tránh lưu vào bộ nhớ đệm hoặc gửi khung nhìn của trình duyệt tới máy chủ dữ liệu không gian địa lý dưới dạng 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ợ

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