Muitos elementos KML podem conter um elemento ou uma coordenada <altitude>
, que especifica uma distância acima do nível do solo, nível do mar ou fundo do mar para esse elemento específico. Os elementos <AbstractView>
também podem conter altitude.
Todo valor de altitude deve ser acompanhado por um elemento <altitudeMode>
, que indica ao Google Earth como ler o valor de altitude. As altitudes podem ser medidas:
- a partir da superfície da Terra (
relativeToGround
) - acima do nível do mar (
absolute
) ou - do fundo dos principais corpos de água (
relativeToSeaFloor
).
Elas também podem ser ignoradas (clampToGround
e clampToSeaFloor
).
Modos de altitude SeaFloor e o namespace de extensão KML
Os modos de altitude relacionados ao fundo do mar estão contidos em um conjunto de extensões para o padrão KML, que usam o prefixo gx. Para usá-los, primeiro é necessário adicionar o URI do namespace correto ao elemento <kml>
de abertura do seu arquivo KML:
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
Em seguida, substitua <gx:altitudeMode>
por <altitudeMode>
ao usar clampToSeaFloor ou relativeToSeaFloor.
O namespace de extensão com o prefixo gx pode não ser suportado por todos os navegadores geográficos. Ele é suportado pelo Google Earth 5.0.
Referência do modo de altitude
absolute
O modo de altitude "absolute" mede a altitude em relação ao nível do mar, independentemente da elevação real do terreno abaixo do elemento. Dessa maneira, os elementos podem ser posicionados no subsolo e não ficarão visíveis. Partes de um elemento podem ser estendidas para o subsolo, como no exemplo abaixo. Valores negativos são aceitos para posicionar elementos abaixo do nível do mar.
Esse modo de altitude é útil em situações em que o valor de altitude é conhecido com precisão. Trilhas de GPS, por exemplo, podem usar o modo de altitude absolute para exibir caminhos criados durante um voo ou mergulho.
Exemplo
<?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
Este modo ignora qualquer valor de altitude e posiciona o elemento KML na superfície do solo, seguindo o terreno. Dessa maneira, GroundOverlays pode, por exemplo, ser fixado na superfície da Terra. Se o elemento estiver posicionado sobre um grande corpo de água, clampToGround posicionará o elemento no nível do mar.
Todo elemento KML sem modo de altitude especificado assumirá o padrão de clampToGround.
Exemplo
<?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
Contido no namespace de extensão. Consulte Modos de altitude SeaFloor e o namespace de extensão KML para obter informações importantes.
Assim como ocorre com clampToGround, este modo ignora o valor de altitude. Ele posiciona o elemento na parte inferior de qualquer corpo de água grande; se o elemento estiver localizado longe de um corpo de água, será fixado ao nível do solo.
Exemplo
<?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
Mede a altitude a partir do nível do solo diretamente abaixo das coordenadas.
Como exemplo, este modo de altitude pode ser usado para posicionar os topos de postes de luz à medida que eles sobem uma colina. Se cada poste tiver 20 m de altura, o local do topo de cada poste subirá e descerá com a elevação da Terra.
Exemplo
<?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
Contido no namespace de extensão. Consulte Modos de altitude SeaFloor e o namespace de extensão KML para obter informações importantes.
Mede a altitude do fundo do mar diretamente abaixo do elemento, se o elemento for posicionado sobre um grande corpo de água. Se ele não estiver sobre a água, a altitude será medida a partir do nível do solo.
Exemplo
<?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>