ฟีเจอร์ 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>