מצבי גובה

תכונות רבות של KML יכולות לכלול אלמנט <altitude> או קואורדינטה המציין מרחק מעל פני הקרקע, מפלס הים או קרקעית הים עבור התכונה הספציפית הזו. רכיבי <AbstractView> יכולים להכיל גם גובה.

כל ערך גובה צריך להיות מלווה באלמנט <altitudeMode>, שמסביר ל-Google Earth כיצד לקרוא את ערך הגובה. ניתן למדוד גובה:

  • מפני השטח של כדור הארץ (relativeToGround),
  • מעל פני הים (absolute), או
  • מתחתית מקורות המים העיקריים (relativeToSeaFloor).

אפשר גם להתעלם (clampToGround ו-clampToSeaFloor)

מצבי גובה של SeaFloor ומרחב שמות של תוסף KML

מצבי גובה הקשורים לקרקעית הים נכללים בקבוצה של תוספים בתקן KML, עם הקידומת gx. כדי להשתמש בהם, צריך להוסיף תחילה את ה-URI הנכון של מרחב השמות לרכיב ה-<kml> הפותח בקובץ ה-KML:

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

לאחר מכן יש להחליף את <gx:altitudeMode> ב-<altitudeMode> כשמשתמשים ב-clampToSeaFloor או ב-percentToSeaFloor.

הערה: ייתכן שלא תהיה תמיכה בכל הדפדפנים עם מרחב שמות עם קידומת של gx. הוא נתמך על-ידי Google Earth 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 על פני השטח, לאחר פני השטח. באופן כזה, לדוגמה, שכבות-על של שכבת-על יכולות להיות 'מוקפות' על פני כדור הארץ. אם העצם ממוקם מעל גוף מים גדול, 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

מופיעה בתוך מרחב השמות של התוסף. לקבלת מידע חשוב, אפשר לעיין במצבי גובה של Seaelolo ומרחב השמות של תוסף 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>

יחסית לקרקע

מדידת הגובה מגובה פני הקרקע מתחת לקואורדינטות.

לדוגמה, ניתן להשתמש במצב הגובה כדי למקם את החלק העליון של מוטות חשמל, במהלך טיפוס על הגבעה. אם כל מוט הוא בגובה 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>

יחסית-ל-FeaFloor

מופיעה בתוך מרחב השמות של התוסף. לקבלת מידע חשוב, אפשר לעיין במצבי גובה של Seaelolo ומרחב השמות של תוסף 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>