許多 KML 功能可包含 <altitude> 元素或座標,以指定該特定地圖項目與地面、海平面或海平面之間的距離。<AbstractView> 元素也可以包含高度。
所有高度值都必須搭配 <altitudeMode> 元素,讓 Google 地球瞭解如何讀取高度值。系統可評估高度:
- 來自地球表面 (
relativeToGround), - 高於海平面 (
absolute),或 - 自主要水體底部 (
relativeToSeaFloor) 起算。
也可忽略這個屬性 (clampToGround 和 clampToSeaFloor)
海底高度模式和 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">
然後在使用 clampToSeaFloor 或 relativeToSeaFloor 時,將 <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>