KML 常見問題


什麼是 KML?

KML 是一種在「Google 地球」瀏覽器 (例如「Google 地球」) 中顯示地理資料的檔案格式。只要建立 KML 檔案,即可精確定位、新增圖片重疊元素,並以全新方式呈現豐富資料。KML 是由 Open Geospatial Consortium, Inc. (OGC) 維護的國際標準。

KML 有哪些使用者?

KML 社群的涵蓋範圍廣泛且多樣化,就像您造訪 Google 地球社群論壇時一樣。休閒使用者可建立 KML 檔案,在當中進行地標標記、記錄旅程,以及規劃跨國健行和單車活動。科學家使用 KML 為資源、模型和趨勢 (例如火山爆發、天氣型態、地震活動與礦物沉積等) 提供詳細的對應關係。房地產專家、建築師和都市發展機構運用 KML 提出建設圖表,並以圖表呈現計劃內容。學生和老師會使用 KML 探索歷史人物、地點和活動,包含歷史與時事。國家地理機構、聯合國教科文組織和史密森尼學會等組織均使用 KML,以顯示豐富的全域資料。

如何建立 KML 檔案?

建立 KML 檔案的方法有三種。

  • Google 地球。這是建立 KML 檔案的最重要的工具。你可以使用 Google 地球建立
    • 地標
    • 路徑
    • 多邊形
    • 影像重疊
    • 網路連結
    • 放置模型
    • 上述所有資料夾的資料夾
    • 相片重疊
  • 建立好這些物件後,請在 [地點] 窗格中對該物件按一下滑鼠右鍵,然後選取 [複製]。然後再貼上文字編輯器或 XML 編輯器,即可開始編輯。

  • 文字編輯器。在「Google 地球」中建立物件後,請將物件貼到文字編輯器中,然後開始編輯。
  • XML 編輯器。KML 是用於描述地理內容的 XML 語言。XML 編輯器是一種精美的文字編輯器,其中有許多工具可用來建立 XML 文件 (例如標記完成功能),確保您的 KML 元素會以正確的結尾標記關閉。

「Google 地球」社群使用者開發了許多工具。查看 KML 開發人員支援 Google 網路論壇。

如何開啟 KMZ 檔案?

KMZ 檔案是一或多個檔案的壓縮集合,在「Google 地球」中檢視。這些壓縮檔案使用 zip 格式壓縮,您可以使用任何常見的壓縮工具 (例如「WinZip」、「7-Zip」) 或預設的 Windows XP 壓縮資料夾工具 (Windows、「Stuffit」) (適用於 Mac OS) 或「zip」(適用於 Mac OS 或 Linux) 來開啟。您可能需要將副檔名從 .kmz 變更為 .zip,這樣壓縮工具才能識別該檔案。請記得先改回 .kmz,再重新使用該檔案。

如何建立天文資料的 KML?

KML 可用於呈現天文資料,並載入至 Google Sky 或 Microsoft 的 Worldwide Telescope。如需詳細資訊,請參閱「KML 中的 Sky 資料」一文。

Google 地球支援哪些 KML 標記?

Google 地球支援所有 KML 標記。如需所有標記的清單,請參閱 KML 規格

哪裡可以找到《開發人員指南》?

如需開發人員指南,請前往 https://developers.google.com/KML/documentation/topicsinKML.html


為什麼我的線條少了?

當 LineString 具有 clampToGround 時,它會遵循地球的曲線,不會發生任何問題。不過,如果它是「relativeToGround」,您可能需要新增其他點,否則它會繪製一條穿越地球或地形的直線。

例如,這個 LineString 會穿越地球,實際上消失:

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Untitled Path</name>
    <LineString>
      <tessellate>0</tessellate>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>-115.415105,40.669016 -37.752364,34.879979</coordinates>
    </LineString>
  </Placemark>
</kml>

增加更多點可以減少地下的線條數量。<tessellate> 也應為「1」,以確保線條符合地形。

<Placemark>
  <name>Untitled Path</name>
  <LineString>
    <tessellate>1</tessellate>
    <altitudeMode>relativeToGround</altitudeMode>
    <coordinates>
      -134.148103,37.752967 -128.917074,38.803008
      -125.166954,39.583592 -122.137625,39.656880
      -120.421783,40.036311 -118.298157,40.235316
      -114.348386,40.631532 -112.670431,40.761033
      -111.916045,40.681939 -110.177711,40.653055
      -109.544331,40.619327 -107.155697,40.642007
      -105.410526,40.421505 -103.192299,40.430138
      -102.853712,40.427904 -98.168302,40.363524
      -97.093391,40.308754 -94.831304,40.479175
      -93.760070,40.395392 -84.913828,39.466651
      -84.414888,39.387332 -81.380660,39.188551
      -80.276261,38.977744 -77.811560,38.872542
      -75.062267,38.521146 -72.006956,38.101733
      -66.67819,37.664687
    </coordinates>
  </LineString>
</Placemark>
我可以在 KML 中繪製圓形嗎?

KML 中沒有圓形幾何圖形,但是您可以使用 LineString 建立非常接近圓形的座標;查看範例

我可以將 LineString 改成虛線或箭頭嗎?

<LineStyle> 可讓您變更線條的顏色、透明度和大小。但是,KML 目前不支援變更 KML 中的線條類型。

如何隱藏地標的標籤?

Google 地球的地標旁邊顯示的標籤都是以 <name> 元素為基礎。將 LabelStyle 中的資源調度元素設為 0 後,就可以隱藏標籤。

<Style id="hideLabel">
  <LabelStyle>
    <scale>0</scale>
  </LabelStyle>
</Style>
為什麼我會收到剖析錯誤?

剖析錯誤主要有兩種:

  1. Letter 案例:KML 和其他所有 XML 語言一樣,區分大小寫。所有元素名稱都必須正確修正。例如: <Placemark> 不是 <PLACEMARK> <href> 不是 <Href> <Link> 不是 <lInk>
  2. 不完整的標記:所有元素的開頭和結尾都必須是相同標記。使用者有時候會忘記關掉標記,或是看到角度括號 (< 或 >)

    舉例來說:
    <name>Atlanta</name> 是正確的
    <name>Atlanta 不正確
    <nameAtlanta</name> 不正確
    <nameAtlanta<name> 不正確

如何判斷我撰寫的 KML 檔案是否為有效的 KML 檔案?

KML 是一種 XML 標記語言。您可以透過多種方式進行驗證:

  • 您可以取得 OxygenNetbeans 等 XML 編輯器,並使用這些編輯器驗證文件。請參閱所選 XML 編輯器的說明文件。您需要 KML 架構才能進行驗證。
  • 你可以使用線上驗證工具 (例如 FeedValidator.org) 或 Galdos 的 KML 驗證工具) 進行檢查,藉此找出您所做的任何錯誤,並提供一些樣式建議。
  • 部分文字編輯器可讓您進行 XML 驗證。舉例來說,您可以使用 jEdit 來驗證 KML。不妨看看 Google 地球推廣計畫小組提供的這個教學課程
有一種方法可以控制螢幕上顯示的內容,讓使用者在靠近地球表面時看到更多詳細資訊嗎?

區域標記可用來控制您向使用者顯示的功能。如要瞭解更多地區相關資訊,

可以在 MultiGeometry 元素中,為不同的幾何圖形指派不同的顏色/樣式嗎?

MultiGeometry 元素會將幾何圖形結合同一個 Placemark 元素。這可讓幾何圖形共用相同的樣式,並以單一項目的形式顯示在清單中,例如「Google 地球」的「我的位置」窗格。

您可以在「地標」層級設定樣式,方法是使用 styleUrl 元素或 Style 元素。因此,地標中的個別幾何圖形不能有不同的樣式。

常用的解決方法是為每個幾何圖形建立個別的地標,讓每組形狀都有不同的樣式。為避免清單中的項目數量增加,請將這些項目放入具有 ListStyle 且包含 listItemType 且含 checkHideChildren 的資料夾中。例如,在「Google 地球」中,這會將所有「地標」放在「我的地點」的同一個資料夾元素中,並禁止使用者開啟該標記來顯示大量元素。


開啟 KML 檔案時可以打開氣球嗎?

此時,KML 不支援在開啟 KML 檔案時開啟說明框的功能。但是,如果您使用功能錨點,您可在資訊框中建立連結,開啟第二個 KML 檔案或其他說明框。

重新整理 NetworkLink 時,我可以讓氣球保持開啟嗎?

目前,Network Network 不支援在 NetworkLink 重新整理時保留氣球狀態。

我可以檢視使用者建立的 KML 嗎?

目前,您無法使用 NetworkLink 來擷取使用者在「Google 地球」或「Google 地圖」中建立的 KML。不過,您可以使用 Google Maps JavaScript API 做為 KML 建立工具,然後將該資訊擷取回伺服器。如需範例,請參閱 GeoDataStore

我可以透過 KML 控制時間滑桿嗎?

開啟包含 TimeStamp 或 TimeSpan 元素的 KML 檔案後,KML 中的時間滑桿就會開啟。時間滑桿會找出目前選取的 TimeStamp 和 TimeSpan 元素,並調整以配合所有顯示的日期。KML 目前無法進一步控制時間滑桿,例如設定目前選取的時間,或選取時間範圍的表示長度。 如要進一步瞭解如何使用時間,請參閱時間和動畫一文。

如何與 KML 互動?我可以將 Google 表單加入 KML 說明框中的 HTML 嗎?

目前,Google 地球中的 KML 僅支援描述簡報的 HTML 部分內容,而不支援互動功能。

不過,您可以在 Google 地球中利用 KML 建立 Flash 表單。如要進行這項操作,請將 Flash 應用程式嵌入 KML 說明框中的 HTML 中。


我可以使用試算表自動建立 KML 嗎?

以下提供幾個基本方式。

  • 使用您自己的程式自行進行 CSV 檔案剖析,並使用該檔案建立 KML。如需範例,請參閱將 CSV 檔案轉換成 KML 一文。
  • 使用線上試算表。舉例來說,Google 地球推廣團隊建立了根據 Google 試算表建立的試算表對應工具
  • 使用 Excel 中的 KML 建立工具,例如 [link to tek's thread]這個工具
  • 使用 Google Earth Plus 或 Pro 載入檔案,然後儲存為 KML 或 KMZ 檔案
為什麼我的網路伺服器無法正確下載 KML 檔案?

網路伺服器必須告訴他們提供的檔案類型。某些瀏覽器 (例如 Firefox) 會猜測檔案類型。其他網路 (例如 Internet Explorer) 則仰賴網路伺服器的 MIME 類型設定。

如果是 Apache 伺服器,請在 httpd.conf 中加入以下兩行:

AddType application/vnd.google-earth.kml+xml .kml
AddType application/vnd.google-earth.kmz .kmz

對於 Microsoft 的網際網路資訊伺服器,請遵循下列指示:

IIS 6.0 版:

http://support.microsoft.com/kb/326965

IIS 4.0 和 5.0:

http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx

如果您自行管理網路伺服器,則必須變更自己的設定。否則,請與你的網站代管服務聯絡,並要求對方進行相關變更。


為什麼說明框內容可能使用了不正確的圖片網址?

我們最近在「Google 地球」中變更了功能說明,以處理功能說明框中 處理內容的方式,讓之前的指定行為更加清晰。 因此,如果在包含無效的連結結構的 KMZ 中按一下連結,就會將使用者導向含有「在這裡傳送的連結格式有誤」的網頁。請點選下方連結,嘗試使用舊版模式。」如果您看到這則訊息,建議您變更 KML/KMZ 內容的結構,確保與未來的 Google 地球版本完全相容。

詳情請參閱這篇文章,包括如何正確重新建構 KMZ 內容的詳細資料。

新的相對路徑規則會影響哪些內容?

目前,功能說明框中的內容連結 (網址) 目前會受到這項異動影響。這包括 <BallonStyles> 內的 <description> 與 <text> 標記。不過,日後的 Google 地球版本可能會進一步提升一致性,因此請一律避免使用父項目錄做為 KMZ 內容中相對連結的基準網址。


Google 地球的「我的位置」中的 KML 是否會傳送至 Google 的伺服器?

不會。Google 地球產生的 KML 檔案,或使用者在 Google 地球中載入的 KML 都不會傳送給 Google。這些資料的所有處理和儲存作業都是在本機電腦上完成。

返回頁首