高度模式

許多 KML 功能可包含 <altitude> 元素或座標,以指定該特定地圖項目與地面、海平面或海平面之間的距離。<AbstractView> 元素也可以包含高度。

所有高度值都必須搭配 <altitudeMode> 元素,讓 Google 地球瞭解如何讀取高度值。系統可評估高度:

  • 來自地球表面 (relativeToGround),
  • 高於海平面 (absolute),或
  • 自主要水體底部 (relativeToSeaFloor) 起算。

也可忽略這個屬性 (clampToGroundclampToSeaFloor)

海底高度模式和 KML 擴充功能命名空間

與 KML 標準的擴充程式中,有一組與「海底」相關的高度模式 (使用 gx 前置字元)。如要使用這些索引,您必須先在 KML 檔案的起始 <kml> 元素中加入正確的命名空間 URI:

<kml xmlns="http://www.opengis.net/kml/2.2"
     xmlns:gx="http://www.google.com/kml/ext/2.2">

然後在使用 clampToSeaFloorrelativeToSeaFloor 時,將 <altitudeMode> 替換為 <gx:altitudeMode>

請注意,部分地理瀏覽器可能不支援 gx 前置字串的擴充命名空間。Google 地球 5.0 版支援這項功能。

高度模式參考資料

絕對

絕對高度模式會測量相對於海平面的海拔高度,而無論地形下方的地形實際海拔高度為何。如此一來,功能就可以置於地底,而且不會顯示。地圖項目的一部分可以在地下延伸,如下方範例所示。系統接受負值,並將特徵置於海平面以下。

這個高度模式在精確海拔高度值的情況下相當實用。例如,GPS 歷程可使用絕對高度模式,顯示飛行或潛水時所建立的路徑。

示例

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
 
<GroundOverlay>
  <name>absolute Example</name>
  <Icon>
    <href>rectangle.jpg</href>
    <viewBoundScale>0.75</viewBoundScale>
  </Icon>
  <altitude>2744.0</altitude>
  <altitudeMode>absolute</altitudeMode>
  <LatLonBox>
    <north>48.783</north>
    <south>48.751</south>
    <east>-121.75</east>
    <west>-121.89</west>
    <rotation>-30</rotation>
  </LatLonBox>
</GroundOverlay>

</kml>

clampToGround

這個模式會忽略任何高度值,並且將 KML 功能放在地形之後的地面上。如此一來,GroundOverlays 就能夠在「地球」表面上「做到」;如果該地圖項目置於主要水域,clampToGround 會將這項功能置於海平面。

凡是未指定高度模式的 KML 功能,都會預設為 clampToGround。

示例

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <GroundOverlay> <name>clampToGround example</name> <Icon> <href>rectangle.jpg</href> <viewBoundScale>0.75</viewBoundScale> </Icon> <altitude>2744.0</altitude> <altitudeMode>clampToGround</altitudeMode> <LatLonBox> <north>48.783</north> <south>48.751</south> <east>-121.75</east> <west>-121.89</west> <rotation>-30</rotation> </LatLonBox> </GroundOverlay> </kml>

clampToSeaFloor

位於擴充功能命名空間內。如要瞭解重要資訊,請參閱海平面高度模式和 KML 擴充功能命名空間

如同 clampToGround,此模式會忽略高度值。這項功能會將這項功能置於任何主要水域的底部,如果這項功能與水體距離不遠,此功能會改為地面地面。

示例

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">   <!-- required when using gx-prefixed elements -->
 
<Placemark>
  <name>clampToSeaFloor example</name>		
  <Polygon>
    <tessellate>1</tessellate>
    <gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
    <outerBoundaryIs>
      <LinearRing>
        <coordinates>
          146.793,12.213,0
          146.803,12.202,0 
          146.829,12.218,0 
          146.807,12.226,0 
          146.793,12.213,0 
        </coordinates>
      </LinearRing>
    </outerBoundaryIs>
  </Polygon>
</Placemark>

</kml>

relativeToGround

在座標下方直接測量地面的高度。

例如,這個高度模式可以用來將電線桿的頂部攀爬上山和上覆。如果每支柱的高度為 20 公尺,且每根頂部的頂端位置將隨著地球的高度上下移動。

示例

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark> <name>relativeToGround Example</name> <LineString> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <coordinates> -121.835,48.754,700 -121.828,48.764,700 -121.818,48.776,700 -121.794,48.787,700 -121.778,48.781,700 -121.766,48.771,700 -121.768,48.757,700 -121.773,48.747,700 </coordinates> </LineString> </Placemark> </kml>

relativeToSeaFloor

位於擴充功能命名空間內。如要瞭解重要資訊,請參閱海平面高度模式和 KML 擴充功能命名空間

在功能前方放置於主要水域處,測量地底海平面的高度。如果不是水上,則會從地面測量高度。

示例

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">   <!-- required when using gx-prefixed elements -->

<Placemark>
  <name>relativeToSeaFloor Example</name>
  <LineString>
    <extrude>1</extrude>
    <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
    <coordinates>
      146.825,12.233,400
      146.820,12.222,400
      146.812,12.212,400
      146.796,12.209,400
      146.788,12.205,400
    </coordinates>
  </LineString>
</Placemark>

</kml>