Muchos recursos KML pueden contener una coordenada o un elemento <altitude>
que especifica la distancia por encima del nivel del suelo, del mar o del fondo marino para ese recurso en particular. Los elementos <AbstractView>
también pueden contener valores de altitud.
Todo valor de altitud debe ir acompañado de un elemento <altitudeMode>
que le indique a Google Earth cómo leer el valor de altitud real. Las altitudes se pueden medir:
- desde la superficie de la Tierra (
relativeToGround
), - por encima del nivel del mar (
absolute
), - desde el fondo de las principales masas de agua (
relativeToSeaFloor
).
Los valores de altitud también se pueden ignorar (clampToGround
y clampToSeaFloor
).
Modos de altitud SeaFloor y el espacio de nombres de extensiones KML
Los modos de altitud relativos al fondo marino se incluyen en un conjunto de extensiones según el estándar de KML, mediante el prefijo gx. Para utilizarlos, primero debes añadir el URI de espacio de nombres correcto al elemento <kml>
de inicio del archivo KML:
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
A continuación, sustituye el modo <gx:altitudeMode>
por <altitudeMode>
cuando utilices tanto clampToSeaFloor como relativeToSeaFloor.
Ten en cuenta que es posible que el espacio de extensiones con el prefijo gx no sea compatible con todos los navegadores geográficos, pero sí es compatible con Google Earth 5.0.
Referencia de modo de altitud
absolute
El modo de altitud "absolute" mide la altitud relativa al nivel del mar sin tener en cuenta la elevación real del relieve bajo el recurso. De esta forma, los recursos se pueden ubicar bajo tierra y no se ven. Parte del recurso se puede extender bajo tierra, como se muestra en el siguiente ejemplo. Se admiten niveles negativos para ubicar recursos bajo el nivel del mar.
Este modo de altitud es útil en situaciones en las que se conoce el valor exacto de la altitud. Por ejemplo, los seguimientos del GPS pueden utilizar el modo de altitud "absolute" para mostrar rutas creadas durante un vuelo o un desplazamiento bajo el agua.
Ejemplo
<?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 cualquier valor de altitud y ubica el recurso KML en la superficie del suelo, siguiendo el relieve. De esta forma, por ejemplo, las superposiciones de suelo (GroundOverlay) pueden "taparse" por encima de la superficie de la Tierra. Si el recurso está ubicado sobre una gran masa de agua, el modo "clampToGround" lo situará a nivel del mar.
Todos los recursos KML que no tengan especificado un modo de altitud utilizarán el modo "clampToGround" de forma predeterminada.
Ejemplo
<?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
Se incluye en el espacio de nombres de extensiones. Consulta la sección Modos de altitud SeaFloor y el espacio de nombres de extensiones KML para obtener más información.
Al igual que el modo "clampToGround", este modo ignora el valor de altitud. Coloca el recurso en el fondo de una gran masa de agua y si este está situado lejos de la masa de agua, lo fijará al nivel del suelo.
Ejemplo
<?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
Mide la altitud del nivel del suelo directamente por debajo de las coordenadas.
Por ejemplo, este modo de altitud se puede utilizar para ubicar la parte superior de los postes de las líneas eléctricas a medida que suben y bajan por una montaña. Si cada poste tiene una altura de 20 metros, la ubicación de la parte superior de cada poste subirá o bajará en función de la elevación de la Tierra.
Ejemplo
<?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
Se incluye en el espacio de nombres de extensiones. Consulta la sección Modos de altitud SeaFloor y el espacio de nombres de extensiones KML para obtener más información.
Mide la altitud desde el nivel del fondo marino directamente por debajo del recurso si este está ubicado sobre una gran masa de agua. Si no se encuentra sobre el agua, la altitud se medirá desde el nivel del suelo.
Ejemplo
<?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>