KML 常見問題


什麼是 KML?

KML 是一種檔案格式,用於在 Google 地球等地球瀏覽器中顯示地理資料。您可以建立 KML 檔案來標示地點、新增圖片疊加層,以及以新方式呈現豐富的資料。KML 是由開放地理空間協會 (OGC) 維護的國際標準。

KML 有哪些使用者?

KML 社群廣大且多元,只要造訪 Google 地球社群論壇,即可一覽無遺。一般使用者會建立 KML 檔案,標示住家位置、記錄旅程,以及規劃跨國健行和自行車旅行。科學家會使用 KML 提供資源、模型和趨勢的詳細地圖,例如火山爆發、天氣型態、地震活動和礦藏。房地產專業人士、建築師和城市開發機構會使用 KML 提案建構和視覺化計畫。學生和老師則會使用 KML 探索歷史和當代的人物、地點和事件。國家地理雜誌、聯合國教科文組織和史密森尼學會等機構都使用 KML 顯示豐富的全球資料集。

如何建立 KML 檔案?

建立 KML 檔案的主要工具有三種。

  • Google 地球。這是建立 KML 檔案最重要的工具。使用 Google 地球,您可以建立
    • 地標
    • 路徑
    • 多邊形
    • 圖片重疊
    • 網路連結
    • 放置模型
    • 上述所有項目的資料夾
    • PhotoOverlays
  • 建立其中一個物件後,在「地點」窗格中按一下滑鼠右鍵,然後選取「複製」。然後貼到文字編輯器或 XML 編輯器,即可開始編輯。

  • 文字編輯器。在 Google 地球中建立物件後,將其貼到文字編輯器中,然後開始編輯。
  • XML 編輯器。KML 是用來描述地理內容的 XML 語言。XML 編輯器是功能強大的文字編輯器,提供許多建立 XML 文件的工具,例如標記完成功能,可確保您使用適當的結尾標記關閉 KML 元素。

Google 地球社群使用者也製作了許多工具。查看 KML 開發人員支援 Google 群組。

如何開啟 KMZ 檔案?

KMZ 檔案是經過壓縮的一或多個檔案集合,可在 Google 地球中檢視。這些檔案會以 ZIP 格式壓縮,並可使用任何常見的 ZIP 工具開啟,例如 Windows 的「WinZip」、「7-Zip」或預設的 Windows XP 壓縮資料夾工具,Mac OS 的「Stuffit」,或是 Mac OS 或 Linux 的「zip」。您可能需要將副檔名從 .kmz 改為 .zip,壓縮工具才能辨識檔案。請記得在再次使用檔案前,將檔案改回 .kmz 格式。

如何為天文資料建立 KML?

KML 可用於呈現天文資料,並載入 Google Sky 或 Microsoft 的 WorldWide Telescope。詳情請參閱「KML 中的天空資料」一文。

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. 大小寫:KML 與所有 XML 語言一樣,會區分大小寫。所有元素名稱都必須使用正確的大小寫。例如: <Placemark> not <PLACEMARK> <href> not <Href> <Link> not <lInk>
  2. 標記不完整:所有元素的開頭和結尾必須是相同標記。有時使用者會忘記關閉標記,或省略角括號 (「<」或「>」)

    舉例來說:
    <name>Atlanta</name> is correct
    <name>Atlanta is not correct
    <nameAtlanta</name> is not correct
    <nameAtlanta<name> is not correct

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

KML 是 XML 標記語言,你可以透過下列任一方式驗證:

  • 您可以取得 XML 編輯器 (例如 OxygenNetbeans),並使用這些編輯器驗證文件。請參閱所選 XML 編輯器的說明文件。您需要 KML 結構定義才能進行驗證。
  • 你可以使用線上驗證工具 (例如 FeedValidator.org) 檢查,這類工具會顯示你犯的任何錯誤,並提供一些樣式建議。
  • 部分文字編輯器可讓您進行 XML 驗證。舉例來說,您可以使用 jEdit 驗證 KML。請參閱 Google 地球推廣團隊的教學課程
是否可以控制畫面上顯示的內容,讓使用者靠近地球表面時顯示更多詳細資料?

「地區」標記可用來控管要向使用者顯示哪些功能。如要進一步瞭解區域,請參閱下列最佳資源:

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

MultiGeometry 元素會將幾何圖形歸類在同一個 Placemark 元素中。這樣一來,幾何圖形就能共用相同的樣式,並在清單中顯示為一個項目,例如 Google 地球的「我的地點」窗格。

樣式是在地標層級設定,可使用 styleUrl 元素或 Style 元素。因此,該地標中的個別幾何圖形無法採用不同樣式。

常見的解決方法是為每個幾何圖形建立個別的地標,讓每個地標都有不同的樣式。為避免清單中的項目過多,請將項目放在具有 ListStyleFolder 中,並使用 checkHideChildren 建立 listItemType。舉例來說,在 Google 地球中,這會將所有地標放在「我的地點」的同一個資料夾元素中,避免使用者開啟大量元素。


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

目前 KML 不支援在開啟 KML 檔案時開啟資訊視窗。不過,如果您使用功能錨點,可以在說明框中建立連結,開啟第二個 KML 檔案或其他說明框。

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

目前 KML 不支援在 NetworkLink 重新整理時保留資訊視窗狀態。

我可以查看使用者建立的 KML 嗎?

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

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

只要開啟含有 TimeStamp 或 TimeSpan 元素的 KML 檔案,KML 中的時間滑桿就會隨即開啟。時間滑桿會找出所有目前選取的 TimeStamp 和 TimeSpan 元素,並調整以配合所有代表的日期。KML 目前不允許進一步控制時間滑桿,例如設定所選的目前時間,或選取所代表的時間範圍寬度。 如要進一步瞭解如何使用 Time,請參閱「時間和動畫」一文。

如何為 KML 檔案加入互動功能?我可以在 KML 說明氣球的 HTML 中加入表單嗎?

目前 Google 地球中的 KML 僅支援描述簡報的 HTML 子集,不支援互動。

不過,您可以將 Flash 表單建構到 Google 地球使用的 KML 中。如要這麼做,請將 Flash 應用程式嵌入 KML 說明氣球中的 HTML。


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

基本方法有幾種,

  • 您可以使用自己的應用程式剖析 CSV 檔案,並從中建立 KML,以程式輔助方式自行完成這項作業。如需範例,請參閱「將 CSV 檔案轉換為 KML」。
  • 使用線上試算表。舉例來說,Google Earth Outreach 團隊以 Google 試算表為基礎,建立了 Spreadsheet Mapper
  • 使用 Excel 轉 KML 建立工具,例如 [link to tek's thread]這個工具
  • 使用 Google 地球 Plus 或專業版載入檔案,然後儲存為 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。所有資料處理和儲存作業都會在本機電腦上進行。

返回頁首