跳轉到內容

XML - 資料交換管理/谷歌地球

來自華夏公益教科書



上一章 下一章
OpenOffice.org 和 OpenDocument 格式 acord



KML 簡介

[編輯 | 編輯原始碼]

(此處的大多數內容直接引用自 KML 維基百科文章)

KMLKeyhole Markup Language,金鑰孔標記語言)是一種基於 XML 的標記語言,用於管理 Google Earth、Google 地圖、Google 移動、ArcGIS Explorer 和 World Wind 等程式中三維地理空間資料的顯示。(“金鑰孔”是 Google Earth 軟體的早期名稱;該軟體由 Keyhole, Inc 生產,該公司於 2004 年被 Google 收購。 “金鑰孔”這個詞實際上是為了紀念 KH-11|KH 偵察衛星,這是最早的空中偵察系統,至今已有 30 多年的歷史。)

KML 檔案指定了一組功能(地標、影像、多邊形、三維模型、文字描述等),用於在 Google Earth、地圖和移動裝置中顯示。每個位置都有經度和緯度。其他資料可以使檢視更具體,例如傾斜度、航向、高度,這些共同定義了一個“相機檢視”。KML 與地理標記語言|GML[1] 有一些相同的結構語法。某些 KML 資訊無法在 Google 地圖或移動裝置[2] 中檢視。

KML 檔案通常以 KMZ 檔案的形式分發,KMZ 檔案是帶 .kmz 副檔名的壓縮|壓縮的 KML 檔案。當解壓縮 KMZ 檔案時,會找到一個名為“doc.kml”的單個檔案以及 KML 中引用的任何覆蓋物和圖示影像。

KML 文件示例

 <?xml version="1.0" encoding="UTF-8"?>
 <kml xmlns="http://earth.google.com/kml/2.0">
 <Placemark>
   <description>New York City</description>
   <name>New York City</name>
   <Point>
     <coordinates>-74.006393,40.714172,0</coordinates>
   </Point>
 </Placemark>
 </kml>

與 KML 關聯的 MIME 型別為 application/vnd.google-earth.kml+xml
與 KMZ 關聯的 MIME 型別為 application/vnd.google-earth.kmz

基本 KML 文件型別

[編輯 | 編輯原始碼]

為了使 XML 文件識別 KML 特定的標記,您必須宣告 KML 名稱空間(列在下面)。

<kml xmlns="http://earth.google.com/kml/2.0">

您將在所有列出的示例檔案中看到此宣告。

為了檢視本章中提供的示例,您需要將文字複製並貼上到任何文字編輯器中。接下來,將檔案儲存為 .kml 檔案。這可以透過選擇“另存為”並使用 .kml 副檔名(您可能需要將名稱用引號括起來,例如“test.kml”)命名檔案來完成。

地標只是在 Google Earth 中根據座標在確切位置建立可點選的針腳。這對於標記興趣點或旅行的起點和終點很有用。

引言中的 KML 文件示例使用了 Placemark 標記。如果您想將地標移動到其他位置,您需要更改的只是座標。

路徑是一系列連線的座標,可以使用線型進行編輯,以在 Google Earth 中獲得更粗體的外觀。高度和顏色可以調整,以獲得更誇張的外觀和更好的清晰度。

以下示例是從佐治亞州亞特蘭大到田納西州納什維爾的路徑。程式碼可能看起來有點複雜,但它主要只是樣式/格式化標記,其中只有 4 個實際座標接近末尾。因此,如果您想使用相同的樣式牆但只是建立不同的路徑,您需要做的就是更改座標。


<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">

  <Document>
    <name>Paths</name>
    <description>Path from Atlanta to Nashville</description>

    <Style id="yellowLineGreenPoly">
      <LineStyle>
        <color>7f00ffff</color>
        <width>4</width>
      </LineStyle>
      <PolyStyle>
        <color>7f00ff00</color>
      </PolyStyle>
    </Style>

    <Placemark>
      <name>Atlanta to Nashville</name>
      <description>Wall structured path</description>
      <styleUrl>#yellowLineGreenPoly</styleUrl>
      <LineString>
        <extrude>1</extrude>
        <tessellate>1</tessellate>
        <altitudeMode>absolute</altitudeMode>
        <coordinates>
 		-84.40204442007513,33.75488573910702,83269
 		-84.37837132006098,33.82567285375923,83269
 		-84.79700041857893,35.30711817667424,83269
 		-86.79210094043326,36.15389499208452,83269 
        </coordinates>
      </LineString>

    </Placemark>
  </Document>
</kml>

覆蓋物

[編輯 | 編輯原始碼]

覆蓋物是可以在 Google Earth 中透過座標標記的區域上放置的圖形。這些圖形可以顯示某個區域在不同時間點或特殊事件(例如火山噴發)時的外觀。

此覆蓋物示例來自 Google 的 KML 示例網頁,顯示了埃特納火山在實際噴發時的樣子。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
  <Folder>
    <name>Ground Overlays</name>
    <description>Examples of ground overlays</description>
    <GroundOverlay>
      <name>Large-scale overlay on terrain</name>
      <description>Overlay shows Mount Etna erupting 
          on July 13th, 2001.</description>
      <Icon>
        <href>http://code.google.com/apis/kml/documentation/etna.jpg</href>
      </Icon>
      <LatLonBox>
        <north>37.91904192681665</north>
        <south>37.46543388598137</south>
        <east>15.35832653742206</east>
        <west>14.60128369746704</west>
        <rotation>-0.1556640799496235</rotation>
      </LatLonBox>
    </GroundOverlay>
  </Folder>
</kml>

您可以從程式碼中看到它獲取影像 etna.jpg 並將其放置在列出的座標上。

多邊形

[編輯 | 編輯原始碼]

多邊形是 Google Earth 的一個很酷的功能,它允許在 Google Earth 中的任何地方塑造三維形狀。這些形狀對於製作精美的簡報或僅僅向世界展示一個結構的真實外觀很有用。

此示例是佐治亞州特納球場(亞特蘭大勇士隊的主場)的多邊形。多邊形上沒有樣式,以保持程式碼簡潔。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">

  <Placemark>
    <name>Turner Field</name>
    <Polygon>
      <extrude>1</extrude>
      <altitudeMode>relativeToGround</altitudeMode>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
                -84.39024224888713,33.73459764262901,28
 		-84.38961532726215,33.73451197628319,28
 		-84.38830478530726,33.7350571795205,28
 		-84.38811742696677,33.73579651137399,28
 		-84.38856034410841,33.73618350237595,28
 		-84.38930790023139,33.73647497375488,28
 		-84.38997872537549,33.73655338302832,28
 		-84.39051294303495,33.73605785090994,28
 		-84.39056804786146,33.73528763589146,28
 		-84.39024224888713,33.73459764262901,28
	 </coordinates>

        </LinearRing>
      </outerBoundaryIs>      
    </Polygon>
  </Placemark>
</kml>

如您從程式碼中所見,多邊形的 3D 形狀是由經度和緯度座標組成的,高度由座標標記內的第三列值(在本例中為 28)確定。

谷歌地球

[編輯 | 編輯原始碼]

Google Earth 是 Google 免費軟體的名稱,負責處理這些 KML 文件。它是一個由衛星影像拼接而成的虛擬世界,使用者可以在其中以任何方式操控地球,以檢視其景觀、海洋和城市。

您可以在 此處 找到更多資訊並下載該軟體。

基本介面導航

[編輯 | 編輯原始碼]

使用者介面非常直觀,即使是電腦小白使用者也能輕鬆上手,立即開始探索。如果您願意,可以完全忽略工具欄和按鈕,只需單擊並抓住地球,就可以隨意搖動、旋轉或滾動它。要放大,只需右鍵單擊並向上或向下拖動,具體取決於您喜歡的“下落”速度。

如果您需要幫助查詢位置,可以在“飛到...”搜尋框中輸入位置(以城市、州的形式)。然後,Google Earth 將圍繞旋轉並放大到輸入的位置。如果您想進行虛擬度假,Google 在“飛到...”下方視窗中儲存了一些預設位置,標記為“觀光”。只需單擊這些位置之一,您將被帶到該位置,在那裡您可以檢視圖片、文章和評論。

興趣點

[編輯 | 編輯原始碼]

Google 已經為使用者標記的興趣點使用不同顏色的圓點和圖示來標記。 這些可以點選檢視各種資訊,從簡單的評論到該確切位置的全景照片。 對程式碼構成感興趣的高階使用者可以右鍵單擊 Google 的任何標記並選擇“複製”。 這將複製該功能的所有程式碼,您只需將其貼上到文字文件中即可檢視所有標籤和引用。


更多參考

[編輯 | 編輯原始碼]
[編輯 | 編輯原始碼]

其他說明

[編輯 | 編輯原始碼]

維基百科的其他語言版本

[編輯 | 編輯原始碼]
練習
華夏公益教科書