許多 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>