Modos de altitude

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>