Tryby wysokości

Wiele obiektów KML może zawierać element lub współrzędną <altitude>, która określa odległość ponad poziomem terenu, poziomem morza lub dnom morza. Elementy <AbstractView> mogą też zawierać wysokość.

Każdej wysokości towarzyszy element <altitudeMode>, który informuje Google Earth, jak odczytać wartość wysokości. Wysokość można mierzyć:

  • od powierzchni Ziemi (relativeToGround),
  • powyżej poziomu morza (absolute) lub
  • od dołu akwenu (relativeToSeaFloor).

Możesz też go zignorować (clampToGround i clampToSeaFloor).

Tryby wysokości SeeFloor i przestrzeń nazw rozszerzenia KML

Tryby wysokości zależne od poziomu morza są zawarte w zestawie rozszerzeń standardu KML z prefiksem gx. Aby ich używać, musisz najpierw dodać prawidłowy identyfikator URI przestrzeni nazw do otwierającego elementu <kml> w pliku KML:

<kml xmlns="http://www.opengis.net/kml/2.2"
     xmlns:gx="http://www.google.com/kml/ext/2.2">

Następnie zamień <gx:altitudeMode> na <altitudeMode>, używając atrybutu clampToSeaFloor lub relativeToSeaFloor.

Pamiętaj, że przestrzeń nazw rozszerzenia z przedrostkiem gx może nie być obsługiwana przez niektóre przeglądarki geograficzne. Jest ona obsługiwana przez Google Earth 5.0.

Informacje o trybie wysokości

bezwzględne

W trybie bezwzględnym wysokość jest mierzona względem poziomu morza, niezależnie od rzeczywistego poziomu terenu pod obiektem. W ten sposób obiekty mogą być umieszczane pod ziemią i nie będą widoczne. Część funkcji może być poszerzona pod ziemią, tak jak w przykładzie poniżej. Wartości ujemne mogą być umieszczone w miejscach poniżej poziomu morza.

Ten tryb wysokości jest przydatny w sytuacjach, gdy wysokość jest znana dokładnie. Na przykład ścieżki GPS mogą korzystać z trybu bezwzględnego wysokości, aby wyświetlać ścieżki utworzone podczas lotu albo nurkowania.

Przykład

<?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>

Zakodowany

Ten tryb ignoruje dowolną wartość wysokości i umieszcza funkcję KML na powierzchni ziemi, poniżej terenu. W ten sposób nakładki na powierzchni mogą na przykład być „naciągnięte” nad powierzchnią Ziemi. Jeśli obiekt jest umieszczony nad dużym akwenem, obiekt clampToGround umieści go na poziomie morza.

Każda funkcja KML bez określonego trybu wysokości jest domyślnie ustawiona na clampToGround.

Przykład

<?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>

ZapięciePiętro

Zawiera wewnątrz przestrzeni nazw rozszerzenia. Ważne informacje znajdziesz w sekcjach Tryby wysokości skonfigurowane dla SeaFloor i przestrzeń nazw rozszerzenia KML.

Tak jak w przypadku clampToGround ten tryb ignoruje wartość wysokości. Powoduje on umieszczenie obiektu na dnie dużego zbiornika wodnego. Jeśli jest on położony daleko od akwenu, zostanie on przymocowany do poziomu gruntu.

Przykład

<?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

Pomiar wysokości nad poziomem terenu bezpośrednio pod współrzędnymi.

Ten tryb wysokości może na przykład służyć do umieszczania wierzchołków biegunów elektrycznych podczas wspinania się na szczyt. Jeśli każdy słupek jest wysokości 20 m, położenie jego wierzchołków porusza się w górę i w dół wraz z wysokością Ziemi.

Przykład

<?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>

względneToSeaFloor

Zawiera wewnątrz przestrzeni nazw rozszerzenia. Ważne informacje znajdziesz w sekcjach Tryby wysokości skonfigurowane dla SeaFloor i przestrzeń nazw rozszerzenia KML.

Mierzy wysokość z dna morskiego bezpośrednio pod obiektem, jeśli jest on położony nad dużym zbiornikiem wodnym. Jeśli nie jest na poziomie wody, wysokość jest mierzona od poziomu gruntu.

Przykład

<?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>