โหมดระดับความสูง

ฟีเจอร์ KML จํานวนมากอาจมีองค์ประกอบ <altitude> หรือพิกัดที่ระบุระยะทางจากระดับพื้นดิน ระดับน้ําทะเล หรือพื้นทะเลสําหรับฟีเจอร์นั้นๆ องค์ประกอบ <AbstractView> มีระดับความสูงได้ด้วย

ค่าระดับความสูงใดๆ ควรมาพร้อมกับองค์ประกอบ <altitudeMode> ซึ่งจะบอก Google Earth เกี่ยวกับวิธีอ่านค่าระดับความสูง ระดับความสูงที่สามารถวัดได้มีดังนี้

  • จากพื้นผิวโลก (relativeToGround)
  • สูงกว่าระดับน้ําทะเล (absolute) หรือ
  • จากด้านล่างของแหล่งน้ําที่สําคัญ (relativeToSeaFloor)

และคุณไม่จําเป็นต้องดําเนินการใดๆ ด้วย (clampToGround และ clampToSeaFloor)

โหมดระดับความสูงของทะเลและเนมสเปซของส่วนขยาย 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 หรือ relativeToSeaFloor

โปรดทราบว่าเบราว์เซอร์ทางภูมิศาสตร์บางรายการอาจไม่รองรับเนมสเปซส่วนขยายที่มีคํานําหน้า 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 บนพื้นดินและตามภูมิประเทศ ด้วยวิธีนี้ GroundOverlays จะ "ถูกลาก" ไปเหนือพื้นผิวของโลกได้ หากฟีเจอร์วางไว้เหนือผืนน้ําที่สําคัญ 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>

แคลมป์ToSeaFloor

อยู่ในเนมสเปซส่วนขยาย ดูข้อมูลสําคัญได้ในโหมดระดับความสูงของ SeaFloor และเนมสเปซของส่วนขยาย 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>

สัมพัทธ์กับอาหารทะเล

อยู่ในเนมสเปซส่วนขยาย ดูข้อมูลสําคัญได้ในโหมดระดับความสูงของ SeaFloor และเนมสเปซของส่วนขยาย 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>