บทแนะนําเกี่ยวกับ KML 2.1

บทแนะนํานี้ออกแบบมาเพื่อทําความคุ้นเคยกับฟีเจอร์ใหม่ที่น่าสนใจใน KML 2.1 หากสนใจดูทัวร์แนะนํา ให้เริ่มจากการคลิกลิงก์เพื่อดูตัวอย่างกลุ่มใน Google Earth หากต้องการรายละเอียดเพิ่มเติมเกี่ยวกับองค์ประกอบ KML ใหม่ ให้เจาะลึกข้อความและศึกษาตัวเลขเพื่อทําความเข้าใจว่าฟีเจอร์เหล่านี้จะช่วยเพิ่มความยืดหยุ่นและพลังให้กับ Google Earth รูปแบบใหม่นี้ได้อย่างไร เราต้องการเห็นงานนําเสนอและทัวร์ชมนวัตกรรมที่คุณสร้างขึ้นด้วยเครื่องมือเหล่านี้

โปรดดูรายละเอียดเกี่ยวกับองค์ประกอบที่กล่าวถึงในการอ้างอิง KML 2.1 และสคีมา KML 2.1

ไฮไลต์ของ KML 2.1

  • ภูมิภาค - ภูมิภาคต่างๆ แสดงลักษณะการแก้ไขและระดับรายละเอียดที่ช่วยให้คุณปรับแต่งวิธีแสดงข้อมูลใน Google Earth ได้ เมื่อใช้ร่วมกับ NetworkLinks ภูมิภาคจะเปิดใช้สตรีมมิงชุดข้อมูลขนาดใหญ่มาก โดยมีการโหลดข้อมูล "อัจฉริยะ" ที่ความละเอียดหลายระดับ (ดูส่วนการวางซ้อนขั้นสูง) นอกจากนี้ คุณยังสามารถจําลองเลเยอร์ของ Google Earth โดยใช้ภูมิภาค
  • โมเดล 3 มิติที่มีพื้นผิว - สามารถสร้างโมเดลออบเจ็กต์ 3 มิติตามธรรมชาติในพื้นที่พิกัดของตนเอง แล้วส่งออกเป็นไฟล์ ภาพต่อกันเพื่อนําเข้าไปยัง Google Earth และวางบนพื้นผิวโลก
  • การอัปเดตเพิ่มขึ้น - คุณสามารถอัปเดตข้อมูลที่โหลดโดย NetworkLinks ได้พร้อมกันเพิ่มขึ้น โดยเปลี่ยนแปลง เพิ่ม และลบข้อมูล KML ที่เคยโหลดลงใน Google Earth ก่อนหน้านี้
  • วันที่หมดอายุ/เวลา - คุณระบุ dateTime เพื่อรีเฟรชข้อมูลเพื่อให้แคชนั้นและข้อมูลเป็นปัจจุบันได้
  • โฟลเดอร์ปุ่มตัวเลือก - หากต้องการอนุญาตให้ผู้ใช้เลือกรายการในโฟลเดอร์ได้ครั้งละ 1 รายการเท่านั้น ให้ใช้องค์ประกอบ ListStyle ใหม่เพื่อระบุRadioFolder

ตัวอย่างเจ๋งๆ

ดูข้อกําหนด

องค์ประกอบใหม่ที่สําคัญบางส่วนที่คุณจะได้รับใน KML 2.1 มีดังนี้

การทํางานกับภูมิภาค

ภูมิภาค เป็นฟีเจอร์ใหม่ของ KML ที่ทรงประสิทธิภาพที่ช่วยให้คุณเพิ่มชุดข้อมูลขนาดใหญ่มากลงใน Google Earth ได้โดยไม่กระทบต่อประสิทธิภาพ ระบบจะโหลดและวาดข้อมูลเฉพาะเมื่อข้อมูลดังกล่าวอยู่ในมุมมองของผู้ใช้ รวมถึงใช้พื้นที่บางส่วนของหน้าจอ การใช้ภูมิภาคจะช่วยให้คุณระบุรายละเอียดในระดับแยกต่างหากสําหรับข้อมูล เพื่อให้โหลดรายละเอียดได้เฉพาะเมื่อข้อมูลมีพื้นที่บางส่วนบนหน้าจอซึ่งมีรายละเอียดมากพอที่จะมองเห็นรายละเอียดได้

หมายเหตุ: ใน KML บางชั้นเรียนมาจากชั้นเรียน "ผู้ปกครอง" คลาส "ย่อย" ที่ได้รับจะรับช่วงองค์ประกอบทั้งหมดในคลาสระดับบนสุดและเพิ่มองค์ประกอบที่เฉพาะเจาะจงบางอย่างเป็นของตัวเอง (นี่เป็นเทคนิคทั่วไปของระบบที่ใช้ออบเจ็กต์เป็นหลัก) เพื่อความสะดวก ส่วนนี้หมายถึงชั้นเรียนหลักแทนการแสดงชั้นเรียนย่อยทั้งหมดที่ได้มา เช่น

  • คําว่าฟีเจอร์หมายถึงองค์ประกอบ KML ที่ได้มาจากฟีเจอร์ ได้แก่ เอกสาร โฟลเดอร์ Groundโฆษณาซ้อนทับ, NetworkLink, เครื่องหมายตําแหน่ง และ Screenโฆษณาซ้อนทับ
  • เรขาคณิต หมายถึงองค์ประกอบทางเรขาคณิตใน KML: Point, Polygon, เชิงเส้นRing, LineString, Model, MultiGeometry
  • การวางซ้อนหมายถึงองค์ประกอบที่ได้มาจากการวางซ้อน: โฆษณาซ้อนทับและการวางซ้อนหน้าจอ

ดูข้อมูลอ้างอิง KML สําหรับแผนภาพที่แสดงการสืบทอดภายในองค์ประกอบ KML

แนวคิดสําคัญ

แต่ละฟีเจอร์อาจมีภูมิภาค ภูมิภาคจะส่งผลต่อการเปิดเผยเรขาคณิตของหมุดหรือรูปภาพการวางซ้อน ภูมิภาคจะกําหนดทั้งลักษณะแถวและระดับรายละเอียดของเรขาคณิตหรือการวางซ้อนที่ได้รับผลกระทบ ภูมิภาคต่างๆ รับค่าผ่านลําดับชั้น KML และส่งผลต่อระดับการเข้าถึงฟีเจอร์ที่กําหนดไว้เป็นลําดับชั้นต่ํากว่า

ส่วนนี้จะอธิบายวิธีแนวคิดหลักต่อไปนี้ที่จําเป็นต่อการทําความเข้าใจภูมิภาค

กล่องขอบเขต

ภูมิภาคมี <LatLonAltBox> ที่กําหนดกรอบขอบเขตสําหรับข้อมูลของคุณ กรอบล้อมรอบคือระดับเสียงที่ล้อมรอบชุดออบเจ็กต์หรือจุดข้อมูล <LatLonAltBox> ในภูมิภาคหนึ่งมีทิศเหนือ ทิศใต้ ตะวันออก และตะวันตก คล้ายกับ <LatLonBox> ใน Groundโฆษณาซ้อนทับ หากข้อมูลที่มีอยู่ในภูมิภาคนั้นเป็น 3 มิติ หรือเป็น 2 มิติที่ระดับความสูง <LatLonAltBox> ของภูมิภาคนั้นๆ จะต้องมีระดับความสูงต่ําสุด <minAระดับความสูง> และระดับความสูงสูงสุด <maxAระดับความสูง>

ออบเจ็กต์ที่เชื่อมโยงกับกรอบล้อมรอบนี้จะวาดเมื่อ (1) ภูมิภาคปรากฏภายในมุมมอง และ (2) ขนาดหน้าจอที่คาดการณ์ไว้ของ <LatLonAltBox> อยู่ในช่วงช่วงพิกเซลที่ระบุสําหรับภูมิภาคนั้น ตามที่อธิบายไว้ในระดับรายละเอียด (LOD) เมื่อเป็นไปตามเงื่อนไขทั้งสองนี้ ภูมิภาคจะได้รับการระบุว่า "ทํางานอยู่"

ระดับรายละเอียด (LOD)

แนวคิดสําคัญข้อที่ 2 ที่เกี่ยวข้องกับภูมิภาคคือระดับรายละเอียดหรือLOD สั้นๆ เนื่องจากหน้าจอคอมพิวเตอร์มีพื้นที่จํากัด การสร้างการตั้งค่าข้อมูลสูงสุดจึงมีประสิทธิภาพสูงสุดได้ก็ต่อเมื่อมีพิกเซลเพียงพอที่จะแสดงข้อมูลมากพอ เมื่อภูมิภาคนั้นเป็นพื้นที่เล็กๆ ของหน้าจอ (อาจเป็นเพราะผู้ใช้ดูจากระยะใกล้หรือเป็นพื้นที่ราบที่มีภาพดูโล่ง) กลไก LOD ช่วยให้คุณ (ผู้เขียน KML) ระบุชุดข้อมูลที่มีความละเอียดต่ําทดแทนข้อมูลความละเอียดสูงได้ ชุดข้อมูลที่มีความละเอียดต่ํากว่านี้จะโหลดได้เร็วขึ้น และเนื่องจากพื้นที่เล็กๆ น้อยๆ อยู่บนหน้าจอ ผู้ใช้จึงอาจแยกความแตกต่างไม่ได้

ในภูมิภาค องค์ประกอบ <minLodPixels> และ <maxLodPixels> ช่วยให้คุณระบุพื้นที่ของหน้าจอ (เป็นพิกเซลสี่เหลี่ยม) ได้ เมื่อฉายข้อมูลไปยังหน้าจอ พื้นที่นั้นต้องใช้พื้นที่หน้าจอมากกว่า <minLodPixels> และน้อยกว่า <maxLodPixels> จึงจะมองเห็นได้ เมื่อขนาดที่คาดการณ์ไว้ของภูมิภาคอยู่นอกขีดจํากัดเหล่านี้ ภูมิภาคจะไม่แสดงอีกต่อไปและภูมิภาคจะไม่ทํางาน

ในกรณีพิเศษที่คุณต้องการให้ข้อมูลทํางานเป็นขนาดที่ไม่มีที่สิ้นสุด ให้ระบุ ‐1 (ค่าเริ่มต้น) สําหรับ <maxLodPixels>

ตัวอย่างที่ 1: ภูมิภาคของการวางซ้อนพื้นที่

ก่อนอื่นให้ดูตัวอย่างง่ายๆ ที่สร้างภูมิภาคสําหรับการวางซ้อน 2 มิติที่ระดับพื้นดิน ตัวอย่างนี้ใช้พื้นดินที่มีข้อมูลทางประวัติศาสตร์แสดงส่วนหนึ่งของเมาน์เทนวิว รัฐแคลิฟอร์เนีย ในปี 1991 เมื่อผู้ใช้ซูมเข้าในพื้นที่นั้น การวางซ้อนจะแสดงขึ้น การวางซ้อนจะมีลักษณะดังนี้เมื่อมีภาพปรากฏครั้งแรก (ตัวอย่างไฟล์มี LineString สีขาวเพื่อให้การวางซ้อนดูโดดเด่นขึ้น)

ภาพหน้าจอแสดงการวางซ้อนสีขาวดําที่มองเห็นได้

ในตัวอย่างนี้ <minLodPixels> คือ 128 ซึ่งหมายความว่า GroundOverlay จะเข้ามาในมุมมองเมื่อมีพื้นที่ 128 พิกเซลบนหน้าจอ (ตัวอย่างใช้ค่าเริ่มต้นเป็น -1 สําหรับ <maxLodPixels> ซึ่งหมายความว่าจะยังเห็นได้เมื่อผู้ใช้ซูมเข้าในมุมนี้) รูปภาพที่ใช้สําหรับการวางซ้อนนี้คือสี่เหลี่ยมจัตุรัส 256 พิกเซล

รูปภาพมีลักษณะดังนี้เมื่อผู้ใช้ซูมเข้า

และนี่คือลักษณะของการเอียงรูปภาพก่อนที่จะแสดงให้เห็นเพราะใช้พื้นที่หน้าจอน้อยกว่าค่า <minLodPixels>

<LatLonAltBox> สําหรับข้อมูลนี้ไม่จําเป็นต้องรวมองค์ประกอบ <minAระดับความสูง> และ <maxAระดับความสูง> เนื่องจากข้อมูลคงที่และอยู่ในระดับพื้นดิน ช่องที่กําหนดขอบเขตสําหรับข้อมูลใน <LatLonAltBox> ของภูมิภาคจะเหมือนกับขอบเขตของ <LatLonBox> ของการวางซ้อนพื้นดิน ดังที่แสดงในไฟล์ KML ด้านล่าง

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Flat Region</name>
<Region>
<LatLonAltBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<GroundOverlay>
<name>Mountain View DOQQ</name>
<Icon>
<href>files/image.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonBox>
</GroundOverlay> <Document> </kml>

นอกจากนี้ ภายในไฟล์ KML ให้สังเกตว่าภูมิภาคนั้นเป็นพี่น้องของรูปภาพ (หรือเรขาคณิต) ที่มีการมองเห็น

เมื่อคุณมีเวลาตรวจสอบไฟล์ KML แล้ว ให้คลิกลิงก์ต่อไปนี้เพื่อโหลดการวางซ้อนลงใน Google Earth จากนั้นทดลองใช้มุมมองต่างๆ และคอยดูเมื่อภูมิภาคนั้นเข้ามาอยู่ในมุมมองและไม่ได้มองเห็นได้ โดยขึ้นอยู่กับพื้นที่หน้าจอที่ต้องใช้ โปรดทราบว่าหากคุณเอียงมุมมองมากพอหรือซูมออกเล็กน้อย การวางซ้อนจะหายไปเนื่องจากใช้พื้นที่หน้าจอน้อยเกินไปจนเป็นไปตามข้อกําหนดของ <minLodPixels>

ดูตัวอย่างใน Google Earth (historicOverlay.kmz)

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

ตัวอย่างที่ 2: ภูมิภาคสําหรับโมเดล 3 มิติ

ตัวอย่างต่อไปนี้แสดงวิธีสร้างภูมิภาคที่มีวัตถุ 3 มิติในระดับพื้นดิน <LatLonAltBox> สําหรับภูมิภาคนี้มี <maxAระดับความสูง> 300 เมตร เนื่องจากเป็นความสูงของอาคาร คุณอาจจําอาคารเหล่านี้ว่าเป็นอาคารของสหประชาชาติในนิวยอร์กซิตี้

โปรดทราบว่าขอบเขตของ <LatLonAltBox> ของภูมิภาคไม่จําเป็นต้องตรงกับลองจิจูดและละติจูดของโมเดลทุกประการ พิกัดสําหรับโมเดลนี้จะสัมพันธ์กับต้นทางภายในของตัวมันเอง ซึ่งอาจมีค่าชดเชยจากตําแหน่งจริงของโลก

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>3D Region on ground</name>
<Placemark>
<name>United Nations Headquarters</name>
<visibility>0</visibility>
<Region>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
<LatLonAltBox>
<north>40.750683130314</north>
<south>40.748162385230</south>
<east>-73.966608428427</east>
<west>-73.969476624071</west>
<minAltitude>0</minAltitude>
<maxAltitude>300</maxAltitude>
<altitudeMode>absolute</altitudeMode>

</LatLonAltBox>
</Region>
<Model>
<altitudeMode>absolute</altitudeMode>
<Location>
<longitude>-73.967763927199</longitude>
<latitude>40.749458312255</latitude>
<altitude>0.406173708576</altitude>
</Location>
<Link>
<href>models/un.dae</href>
</Link>
</Model>
</Placemark>
</Document>
</kml>

คลิกลิงก์ต่อไปนี้เพื่อโหลดไฟล์ไปยัง Google Earth และทําการทดลองกับมุมมองต่างๆ อีกครั้งเพื่อดูว่าสิ่งปลูกสร้างต่างๆ ปรากฏเมื่อใดและเมื่อใดที่จะนําออกจากมุมมอง

ดูตัวอย่างใน Google Earth (unitedNations.kmz)

ตัวอย่างที่ 3: ภูมิภาคสําหรับการวางซ้อน 2 มิติที่ระดับความสูง

ตัวอย่างนี้แสดงวิธีเพิ่มการวางซ้อน 2 มิติเพื่อแสดงเหนือพื้นผิวโลกที่ระดับความสูงที่ระบุ เทคนิคนี้มีประโยชน์กับข้อมูลที่แสดงสภาพอากาศและรูปแบบการจราจรทางอากาศ ตัวอย่างนี้แสดงเมฆปกคลุมขนาดเล็กที่ระดับความสูง 100,000 เมตรเหนือระดับน้ําทะเล

<LatLonAltBox> ของภูมิภาคระบุค่า 100,000 เมตรสําหรับทั้งองค์ประกอบ <minAระดับความสูง> และ <maxAระดับความสูง> (ค่าจะเหมือนกันสําหรับทั้ง 2 องค์ประกอบ เนื่องจากการวางซ้อนจะเป็น 2 มิติและไม่มีความหนา) <aระดับความสูงMode> เป็นค่าสัมบูรณ์ ซึ่งหมายความว่าค่านี้สัมพันธ์กับระดับน้ําทะเล

โปรดสังเกตว่าค่า <aระดับความสูง> ของ Groundโฆษณาซ้อนทับ เท่ากับ 100,000 (กล่าวคือ ตรงกับค่าระดับความสูงของกรอบพื้นที่ของภูมิภาค) และ <aheightMode> ของ GroundOverlay ตรงกับค่าที่ระบุสําหรับ <aระดับความสูงMode> ของภูมิภาค

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Flat Region at altitude</name>
<GroundOverlay>
<name>Cloud overlay</name>
<Region>
<LatLonAltBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
<minAltitude>100000</minAltitude>
<maxAltitude>100000</maxAltitude>
<altitudeMode>absolute</altitudeMode>

</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<Icon>
<href>files/image.PNG</href>
</Icon>
<altitude>100000</altitude>
<altitudeMode>absolute</altitudeMode>

<LatLonBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

ดูตัวอย่างใน Google Earth (cloudRegion.kmz)

การยกเว้นเฟด

คุณยังระบุขอบเขตการจางลงสําหรับภูมิภาคที่อนุญาตให้ออบเจ็กต์เปลี่ยนอย่างโปร่งใสจากทึบแสงและกลับมาดูอีกครั้งได้ด้วย Google Earth ใช้ maxFadeExtent เพื่อกําหนดทางลาดจากแบบโปร่งใสทั้งหมดไปจนถึงทึบแสงเมื่อภูมิภาคมีขนาดที่มองเห็นได้สูงสุด และใช้ minFadeExtent เพื่อระบุทางลาดที่จางลงเมื่อภูมิภาคมีขนาดต่ําสุดที่มองเห็นได้ ช่วงสีจางเป็นตัวเลือกที่ไม่บังคับ แต่ป้องกันเอฟเฟกต์ "ป๊อป" ระหว่าง LineString หรือ Polygons ที่มีความละเอียดต่างกัน การจางลงมักมีราคาแพงมากในแง่ของประสิทธิภาพและไม่ควรใช้กับภาพ

หมายเหตุ: ช่วงการจางลงจะมีผลกับออบเจ็กต์ทั้งหมดยกเว้นไอคอนหมุด ไอคอนเหล่านี้จะถูกวาดเมื่อช่วงการจางลงมากกว่า 0.5

 

ตัวอย่างต่อไปนี้จะแสดงให้เห็นว่าขอบเขตการจางลงส่งผลต่อ LineString อย่างไร

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Region in Placemark LineString</name>
<description>
The LineString corners mark the extent
of the Region LatLonAltBox.
The LineString minFadeExtent (at greatest range)
is 1/4 of the maxFadeExtent (at closest range)..
</description>
<Placemark>
<name>Region LineString</name>
<LineString>
<coordinates>
22,50,0
28,50,0
28,45,0
22,45,0
22,50,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>50</north>
<south>45</south>
<east>28</east>
<west>22</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024</maxLodPixels>
<minFadeExtent>128</minFadeExtent>
<maxFadeExtent>512</maxFadeExtent>

</Lod>
</Region>
</Placemark>
</Document>
</kml>

ดูตัวอย่างใน Google Earth (fadeLineString.KML)

ภูมิภาคซ้อน

การใช้งานทั่วไปของภูมิภาคคือการซ้อนกัน โดยภูมิภาคขนาดใหญ่ขึ้นจะมีความละเอียดมากกว่า ส่วนภูมิภาคขนาดเล็กลงจะสัมพันธ์กับระดับที่ละเอียดกว่า ดังรูปต่อไปนี้ แต่ละภูมิภาคมีชุดขีดจํากัด LOD ซึ่งระบุขนาดหน้าจอที่คาดการณ์ไว้ของภูมิภาคในหน่วยพิกเซลที่จําเป็นสําหรับภูมิภาคที่เกี่ยวข้องเพื่อให้ใช้งานได้ เมื่อมีมุมมองผู้ใช้ใกล้เข้ามา ภูมิภาคที่มีรายละเอียดมากขึ้น (LOD) จะเริ่มทํางานเนื่องจากภูมิภาคนั้นๆ จะใช้พื้นที่หน้าจอมากกว่า ภูมิภาคที่มี LOD แบบละเอียดยิ่งขึ้นจะแทนที่ภูมิภาคที่โหลดไว้ก่อนหน้านี้ด้วย LOD แบบคร่าวๆ

เมื่อภูมิภาคที่ซ้อนกันประสบความสําเร็จ

  • รวบรวมข้อมูลที่เกี่ยวข้องกับแต่ละภูมิภาค (ดังในตัวอย่างการวางซ้อนขั้นสูงตามที่อธิบายไว้ด้านล่าง)
  • แทนที่ข้อมูลของภูมิภาคที่โหลดไว้ก่อนหน้านี้ด้วยข้อมูลใหม่ (ดังที่แสดงในรูปก่อนหน้า)

<LatLonAltBox> ในภูมิภาคย่อยควรอยู่ใน <LatLonAltBox> ในภูมิภาคหลัก โดยภูมิภาคจะได้รับมาจากลําดับชั้นของโฟลเดอร์และ NetworkLink ภูมิภาคที่กําหนดไว้ในลําดับความสําคัญเหนือกว่าภูมิภาคที่กําหนดไว้สูงกว่าในลําดับชั้นของโฟลเดอร์ ตัวอย่างต่อไปนี้จะแสดงให้เห็นว่าขอบเขตท้องถิ่นของภูมิภาคจะลบล้างภูมิภาคที่กําหนดไว้ในอันดับที่สูงกว่าอย่างไร ในตัวอย่างนี้ หมุด "ukraineRegion" จะปักหมุดภูมิภาคจากเอกสารระดับบนสุด โฟลเดอร์ "romaniaFolder" ระบุภูมิภาคของตนเองซึ่งใช้โดยหมุด "romaniaRegion" ดูส่วนถัดไปเกี่ยวกับ การโหลดลิงก์อัจฉริยะที่อิงตามภูมิภาค เพื่อดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีใช้ภูมิภาคภายใน NetworkLinks เพื่อประสิทธิภาพสูงสุด

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <Folder> <name>romaniaFolder</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark> </Folder> </Document> </kml>

NetworkLink ตามภูมิภาคที่แสดงในตัวอย่างก่อนหน้านี้เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการเผยแพร่ชุดข้อมูลขนาดใหญ่มากใน Google Earth การใช้ภูมิภาคร่วมกับ NetworkLinks จะช่วยให้คุณสร้างลําดับชั้นของตัวชี้ได้ โดยแต่ละจุดจะชี้ไปยังภูมิภาคย่อยที่เจาะจง <viewRefreshMode> ตามที่แสดงในไฟล์ KML ต่อไปนี้มีตัวเลือก onRegion ซึ่งระบุเพื่อโหลดข้อมูลภูมิภาค only เมื่อภูมิภาคทํางานอยู่ หากคุณระบุภูมิภาคที่ซ้อนกันพร้อมรายละเอียดหลายระดับ ระบบจะโหลดข้อมูลขนาดใหญ่ขึ้นเมื่อมุมมองของผู้ใช้ทริกเกอร์การโหลดครั้งถัดไปเท่านั้น ส่วนต่อไปนี้ในการวางซ้อนขั้นสูงมีตัวอย่างโดยละเอียด

ส่วนที่ 1: ไฟล์ระดับบน

หากต้องการเรียกใช้ตัวอย่างนี้ ให้บันทึกส่วนแรกตามปกติ บันทึกส่วนที่ 2 เป็น romaniaRegion. KML เพื่อให้ NetworkLink สามารถโหลดภูมิภาคเมื่อใช้งานได้

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <NetworkLink> <name>romania NetworkLink</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Link> <href>romaniaRegion.kml</href> <viewRefreshMode>onRegion</viewRefreshMode> </Link> </NetworkLink> </Document> </kml>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>romania Document</name>
<Region>
<LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox>
<Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod>
</Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0
28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark>
</Document>
</kml>

การวางซ้อนขั้นสูง

คําถาม: ฉันจะแชร์รูปภาพขนาด 47 MB กับคนทั่วโลกได้อย่างไร
A: ทีละรายการ

คําถาม: จะเกิดอะไรขึ้นหากทุกคนพยายามทําสิ่งนี้
ตอบ: หากคุณใช้ NetworkLinks ตามภูมิภาค และให้รายละเอียดเกี่ยวกับระดับต่างๆ สําหรับภาพตามที่อธิบายไว้ในบทแนะนํานี้ ก็ไม่มีปัญหา

ส่วนนี้จะอธิบายวิธีสร้าง "การวางซ้อนขั้นสูง" ซึ่งเป็นลําดับชั้นของภูมิภาคและ NetworkLinks ที่ใช้เพื่อแสดงภาพจํานวนมากได้อย่างมีประสิทธิภาพ ชิ้นส่วนที่มีความละเอียดที่เหมาะสมจะโหลดขึ้นเมื่อส่วนหนึ่งของพื้นที่ภาพเข้ามาในมุมมอง โดยมีการโหลดไทล์ที่มีความละเอียดสูงขึ้นเมื่อจุดชมวิวอยู่ใกล้ การลองแสดงรูปภาพ 7008 x 6720 พิกเซลบนหน้าจอ 1024 x 768 พิกเซลเป็นการสูญเสียความพยายาม ยิ่งไปกว่านั้น หากผู้ใช้อยู่ห่างออกไปเป็นระยะทางเหนือพื้นผิวโลก ข้อมูลทั้งหมดอาจได้รับการอัดแน่นด้วยพิกเซลจํานวนหนึ่ง และประสิทธิภาพหยุดดูไป การวางซ้อนขั้นสูง เช่น ตัวอย่างที่แสดง DOQQ 1991 ของเมาน์เทนวิว รัฐแคลิฟอร์เนีย ช่วยให้คุณใช้ประโยชน์จาก NetworkLinks และความสามารถในการพิจารณาว่า (1) ภูมิภาคหนึ่งๆ อยู่ในมุมมองหรือไม่ และ (2) ดูว่าขนาดที่คาดการณ์ไว้เหมาะสําหรับมุมมองปัจจุบันหรือไม่ หากภูมิภาคเป็น "ใช้งานอยู่" (เป็นไปตามเงื่อนไขทั้ง 2 ข้อ) NetworkLink จะโหลดข้อมูลที่เชื่อมโยงกับภูมิภาคนั้น หากภูมิภาคนั้นไม่มีการใช้งาน ระบบจะไม่โหลดข้อมูล หากคุณแยกย่อยรูปภาพต้นฉบับออกเป็นลําดับชั้นของรูปภาพที่มีรายละเอียดมากขึ้น Google Earth จะโหลดรูปภาพที่เหมาะกับมุมมองปัจจุบันมากที่สุด

หากต้องการดูลักษณะการใช้ลําดับชั้นของรูปภาพนี้ ให้โหลดไฟล์ตัวอย่างนี้ลงใน Google Earth แล้วทดสอบโดยซูมเข้าและซูมออกในพื้นที่ที่สนใจ DOQQ View ในอดีต

 

ตัวอย่างการใช้ลิงก์เครือข่ายตามภูมิภาคเพื่อโหลดชุดข้อมูลขนาดใหญ่มากอย่างมีประสิทธิภาพ รูปภาพต้นฉบับคือ 7008 x 6720 พิกเซล มุมมองเอียงที่แสดงที่นี่จะโหลดการ์ดขนาดเล็กเพียง 5 การ์ดเท่านั้นเพื่อแสดงรูปภาพนี้ (มีการเพิ่มสตริงเส้นสีขาวเพื่อไฮไลต์ขอบเขตของการ์ด) แอปพลิเคชันนี้แสดงภาพประวัติศาสตร์ของเมืองเมาน์เทนวิว (DOQQ ในปี 1991)

การเตรียมข้อมูลของคุณสําหรับการวางซ้อนขั้นสูง

ในตัวอย่างการวางซ้อนขั้นสูง รูปภาพ Mountain View ต้นฉบับจะแยกย่อยออกเป็น GroundOverlays ขนาดเล็กนับร้อย การวางซ้อนหรือการ์ดเหล่านี้จัดเรียงอยู่ในลําดับชั้น 5 ระดับ เพื่อให้เป็นไปตามวัตถุประสงค์ ตัวอย่างเช่น การสนทนาที่นี่ใช้ลําดับชั้น 3 ระดับง่ายๆ และชุดการวางซ้อน 21 ชุด แต่หลักการที่เกี่ยวข้องก็เหมือนกัน โปรดทราบว่านี่เป็นเพียงวิธีการหนึ่งในการสร้างลําดับชั้นของลิงก์เครือข่ายตามภูมิภาค และมีวิธีการอื่นๆ ในการใช้กลไกนี้

หากต้องการสร้างการวางซ้อนขั้นสูง คุณจะต้องทําดังนี้

  1. เตรียมภาพโดยแยกย่อยเป็นส่วนที่จัดการได้ (แนะนําขนาด 256 x 256 พิกเซล) และ
  2. สร้างไฟล์ KML ที่ตั้งค่าภูมิภาค ลิงก์ ลิงก์เครือข่าย และในกรณีนี้คือไฟล์ที่มี GroundOverlays

เตรียมภาพ

เลือกขนาดมาตรฐานสําหรับไทล์ ซึ่งเป็นรูปภาพที่แยกย่อย (ความละเอียดต่างกัน) ที่ Google Earth จะโหลดเมื่อภูมิภาคที่เชื่อมโยงเริ่มทํางาน เพื่อจุดประสงค์ ตัวอย่างเช่น เราจะใช้ 256x256 พิกเซลสําหรับไทล์ของเรา ซึ่งมีขนาดเล็กพอที่จะจัดการได้

  1. เริ่มต้นด้วยรูปภาพแบบเต็มความละเอียดต้นฉบับ แยกย่อยการ์ดเป็น n การ์ด แล้วแยกย่อยแต่ละชิ้นส่วนเป็นชิ้นส่วน n การ์ด
    แยกย่อยต่อไปเรื่อยๆ จนกว่าคุณจะมีชิ้นส่วนขนาดหนึ่งๆ (ในตัวอย่างคือ 256 x 256 พิกเซล)

    สมมติว่ารูปภาพต้นฉบับของเรามีขนาด 1024 x 1024 พิกเซล
    ลําดับชั้นต่อไปนี้จะเกิดขึ้นเมื่อเราแบ่งย่อย
  2.  

     

  3. สุ่มตัวอย่างการ์ดแต่ละรายการในลําดับชั้นเป็นขนาดมาตรฐานที่คุณเลือกไว้ (เช่น 256 x 256 พิกเซล)
    การ์ดที่สุ่มตัวอย่างเหล่านี้จะมีรายละเอียดน้อยลง แต่จะเชื่อมโยงกับภูมิภาคที่มีการใช้งานใน
    มุมมองที่อยู่ไกลออกไป ดังนั้นผู้ใช้จะเสียสิทธิ์สูญเสียรายละเอียดดังกล่าว

 


แผนภาพด้านล่างแสดงให้เห็นวิธีที่มุมมองและคําจํากัดความของภูมิภาคที่ซ้อนกันเป็นตัวกําหนดว่าระบบจะโหลดชิ้นส่วนใดจริงๆ เราระบุรายละเอียด 3 ระดับสําหรับตัวอย่างภาพขนาดใหญ่นี้ เมื่อผู้ใช้ดูภูมิภาคจากระยะทางที่ไกลที่สุด Google Earth จะแสดงมุมมองภาพขนาดย่อ มุมมองนี้จะขยายออกทั่วทั้ง LatLonAltBox (แต่เนื่องจากขนาดที่คาดการณ์ไว้มีขนาดเล็ก หรือ 256 พิกเซลสี่เหลี่ยมจัตุรัส จึงไม่สูญเสียข้อมูลภาพจริงๆ) เมื่อผู้ใช้ซูมเข้าในฉาก พื้นที่จะแบ่งออกเป็น 4 ภูมิภาค "การ์ด" ทั้ง 4 รูปมีขนาดเดียวกันกับภาพขนาดย่อ แต่มีรายละเอียดที่ละเอียดยิ่งขึ้น

หากผู้ใช้ยังซูมเข้าในพื้นที่นั้นอยู่ บางส่วนของภาพความละเอียดเต็มจะเข้าสู่มุมมอง ทั้งนี้ขึ้นอยู่กับระยะการเดินทางของผู้ใช้ พื้นที่ในระยะทางจะเก็บภาพที่มีรายละเอียดน้อยลงซึ่งโหลดก่อน ในตัวอย่าง DOQQ ของเมาน์เทนวิว ให้เปิดใช้ "กล่อง" และดู หมุด ก และ ซึ่งใช้ LineString รอบๆ ภูมิภาค และแสดงลําดับชั้นหลายระดับพร้อมกัน

โปรดสังเกตว่ากลุ่มตัวอย่างใช้ค่าเดียวกันสําหรับ minLodPixels และ maxLodPixels สําหรับทุกภูมิภาค (ในทุกลําดับชั้นของลําดับชั้น) ซึ่งเป็น LatLonAltBox ที่กําหนดระดับของลําดับชั้นที่ควรโหลด และไทล์ภายในภูมิภาค

เตรียมไฟล์ KML

สําหรับภาพแต่ละภาพ ให้เตรียมไฟล์ KML ที่เชื่อมโยงการวางซ้อนพื้นดินกับภูมิภาคและ NetworkLink ไฟล์ KML แต่ละไฟล์ในชุดนี้มีองค์ประกอบต่อไปนี้

  • ภูมิภาค (ที่มี LatLonAltBox, minLodPixels และ maxLodPixels เพื่อให้ Google Earth ระบุได้ว่าภูมิภาคทํางานอยู่ในขณะนั้น)
  • ชุด NetworkLinks ไปยังไฟล์ย่อย (ชิ้นส่วนในลําดับชั้นถัดไป)
  • การวางซ้อนภาพพื้นสําหรับภูมิภาคนี้

ตัวอย่างนี้แสดงไฟล์ KML ระดับบนสุดสําหรับตัวอย่าง Mountain View DOQQ สําหรับ maxLodPixels จะระบุ -1 ซึ่งมีความหมายพิเศษ "ทํางานอยู่ในขนาดที่ไม่จํากัด" หากไม่มีข้อกําหนดนี้ ลําดับชั้นทั้งหมดอาจถูกเรียกให้แสดง

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>SuperOverlay: MV DOQQ</name>
<Region>
<LatLonAltBox>
<north>37.44140625</north>
<south>37.265625</south>
<east>-121.9921875</east>
<west>-122.16796875</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
</Lod>
</Region>
<Link>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/mv-070501/1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
</kml>

ไฟล์ต่อไปนี้แสดงภูมิภาคในตัวอย่าง DOQQ ของเมาน์เทนวิว (179. KML) ไฟล์นี้มีแท็ก href 5 รายการ คือ 4 รายการหมายถึงไฟล์ KML 4 รายการในระดับลําดับชั้นของรูปภาพ และ 1 หมายถึงไฟล์รูปภาพที่ใช้สําหรับ GroundOverlay สําหรับการ์ดนี้

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<NetworkLink>
<name>001120</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>180.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001121</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>185.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001122</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>190.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<NetworkLink>
<name>001123</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>195.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>

</NetworkLink>
<GroundOverlay>
<drawOrder>5</drawOrder>
<Icon>
<href>179.JPEG</href>
</Icon>

<LatLonBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

การแสดงวัตถุ 3 มิติ

ใน KML 2.1 คุณสามารถนําเข้าโมเดล 3 มิติ เช่น อาคาร บริดจ์ อนุสาวรีย์ และรูปปั้นได้ในรูปแบบไฟล์ 31 การแลกเปลี่ยน โมเดลจะกําหนดแยกต่างหากจาก Google Earth ในพื้นที่พิกัดของตนเอง โดยใช้แอปพลิเคชัน เช่น SketchUp, 3D Studio Max, Softimage XSI หรือ Maya เมื่อนําเข้าโมเดล 3 มิติไปยัง Google Earth ระบบจะแปล หมุน และปรับขนาดให้พอดีกับระบบพิกัด Earth โมเดลที่โหลดลงใน Google Earth แล้วจะสามารถเปลี่ยนตําแหน่งและปรับขนาดได้โดยใช้องค์ประกอบ <Update> ซึ่งเป็นฟีเจอร์ใหม่ใหม่ใน KML 2.1

โมเดลตัวอย่าง

โมเดลโดยใช้ใน Google Earth เช่นเดียวกับออบเจ็กต์เรขาคณิตอื่นๆ (จุด เส้นสตริง หรือรูปหลายเหลี่ยม) ต่อไปนี้เป็นตัวอย่างไฟล์ KML ที่นําเข้าที่นําเข้าพื้นผิวเรียบ

การอ้างอิง <Link> ไปยังโมเดลอาจเป็นข้อกําหนดไฟล์แบบสมบูรณ์หรือที่เกี่ยวข้อง หรือ URL

หากต้องการดูโมเดลนี้ ให้โหลดไฟล์ MackyBldg.kmz ซึ่งเป็นที่เก็บถาวรที่มีไฟล์พื้นผิวและการวางซ้อนที่จําเป็นทั้งหมด รวมถึงไฟล์ doc.chromebook ที่มีโมเดลต่อไปนี้

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
<name>SketchUp Model of Macky Auditorium</name>
<description>University of Colorado, Boulder; model created by Noël Nemcik.</description> <LookAt>
<longitude>-105.2727379358738</longitude>
<latitude>40.01000594412381</latitude>
<altitude>0</altitude>
<range>127.2393107680517</range>
<tilt>65.74454495876547</tilt>
<heading>-27.70337734057933</heading> </LookAt> <Model id="model_4">
<altitudeMode>relativeToGround</altitudeMode>
<Location>
<longitude>-105.272774533734</longitude>
<latitude>40.009993372683</latitude>
<altitude>0</altitude>
</Location>
<Orientation>
<heading>0</heading>
<tilt>0</tilt>
<roll>0</roll>
</Orientation>
<Scale>
<x>1</x>
<y>1</y>
<z>1</z>
</Scale>
<Link>
<href>files/CU Macky.dae</href>
</Link>
</Model>
</Placemark>
</kml>

โมเดลมีตําแหน่งทางภูมิศาสตร์ด้วยข้อกําหนดละติจูด ลองจิจูด และองค์ประกอบขององค์ประกอบตําแหน่ง ตัวอย่างนี้ใช้ค่าเริ่มต้นสําหรับองค์ประกอบการวางแนวและสัดส่วน ซึ่งจะรวมอยู่ในความสมบูรณ์ที่นี่

องค์ประกอบการวางแนวระบุการหมุนเวียนของโมเดลรอบแกน x (เอียง), y (ม้วน) และ z (ส่วนหัว) แกน y ชี้ไปทิศเหนือและขนานกับเส้นลองจิจูด และแกน X จะเลื่อนไปทิศตะวันออกและขนานกับเส้นละติจูด การหมุนจะมีการระบุเป็นองศาพร้อมการหมุนเชิงบวกตามที่แสดงในแผนภาพต่อไปนี้

การสร้างที่เก็บถาวร .kmz

ที่เก็บถาวรของ KMZ คือคอลเล็กชันของไฟล์ที่ใช้สร้างงานนําเสนอ KML ไฟล์เดียว ที่เก็บถาวรนี้รวมไฟล์ในเครื่องทั้งหมดที่อ้างอิงในไฟล์ . KML เช่น รูปภาพ พื้นผิว และโมเดล ที่เก็บถาวรของ KMZ คือแพ็กเกจที่อยู่ในตัวเอง ซึ่งไม่จําเป็นต้องโฮสต์บนเซิร์ฟเวอร์เครือข่าย และสามารถส่งอีเมลและจัดเก็บเป็นหน่วยเดียวได้อย่างง่ายดาย Google Earth อ่านไฟล์ . KML และ .kmz ได้โดยตรง

ไฟล์ doc. KML และไฟล์ในเครื่องที่การอ้างอิงถูกบีบอัดในที่เก็บถาวรโดยใช้รูปแบบไฟล์ ZIP แอปพลิเคชันจํานวนมากสร้างรูปแบบนี้ได้ WinZip บนระบบ Windows, Stuffit บนระบบ Macintosh และรหัสไปรษณีย์สําหรับ Linux หรือระบบ Macintosh เป็นแอปพลิเคชันยอดนิยมที่สามารถอ่านและเขียนรูปแบบ ZIP ได้ นอกจากนี้ คุณยังใช้งานไฟล์เก็บถาวร Zip ได้โดยใช้ Windows Explorer หรือ Mac Finder โดยตรง

หลังจากสร้างไฟล์ .zip แล้ว ให้เปลี่ยนนามสกุลไฟล์เป็น .kmz

ไฟล์เก็บถาวร KMZ ที่มีโมเดลพื้นผิวเต็มรูปแบบสําหรับ Macky Building ประกอบด้วยไฟล์ต่อไปนี้

  • doc. KML - ไฟล์ KML ที่แสดงด้านบน ซึ่งนําเข้าโมเดล ColtA (.dae) และวางใน Google Earth วางไฟล์นี้ในไดเรกทอรีรากของไฟล์ KMZ (ZIP)
  • textures.txt - ใช้เพื่อจับคู่เส้นทางพื้นผิวในไฟล์โมเดล (ที่นี่ CU Macky.dae) กับเส้นทางภายในไฟล์ KMZ วางไฟล์นี้ในไดเรกทอรีรากของไฟล์ KMZ (ZIP) ทุกพื้นผิวที่อ้างถึงใน CU Macky .dae มี 1 บรรทัดใน textures.txt ของแบบฟอร์ม
<kmz_file_path> <COLLADA_file_path> [<KML_ID_of_model>]

<kmz_file_path> คือเส้นทางที่เกี่ยวข้องภายในที่เก็บถาวร KMZ ไปยังพื้นผิว เส้นทางนี้เกี่ยวข้องกับ CU Macky.dae ซึ่งอยู่ในไดเรกทอรี files/ ในที่เก็บถาวร KMZ เนื่องจากพื้นผิวจัดเก็บอยู่ในไดเรกทอรี files/ <kmz_file_path> จึงควรขึ้นต้นด้วย ../files/

<กล่าว ADADA_file_path> คือชื่อของไฟล์พื้นผิวเช่นเดียวกับที่ปรากฏใน CU Macky. .dae

[KML_ID] คือรหัส KML ของโมเดลที่ใช้พื้นผิวนี้ สามารถใช้พื้นผิวได้หลายรุ่น พารามิเตอร์นี้เป็นแบบไม่บังคับ

ข้อความที่ตัดตอนมาจากไฟล์ textures.txt ของตัวอย่าง

<../files/CU-Macky---Center-StairsnoCulling.jpg> <CU-Macky---Center-StairsnoCulling.jpg> <model_4>
<../files/CU-Macky-4sideturretnoCulling.jpg> <CU-Macky-4sideturretnoCulling.jpg> <model_4>
<../files/CU-Macky-Back-NorthnoCulling.jpg> <CU-Macky-Back-NorthnoCulling.jpg> <model_4>
  • files/ ไดเรกทอรี - มีไฟล์ Colab ที่ระบุเรขาคณิต พื้นผิว และวัสดุของโมเดล ในตัวอย่าง Macky Building ไดเรกทอรีนี้จะมีไฟล์ เกิดประท้วง (CU Macky.dae) และมีไฟล์จํานวนมากที่มีภาพ JPEG ที่ใช้ปรับพื้นผิวอาคาร (CU-Macky-BrickwallnoCulling.jpg, CU-Macky--Center-StairsnoCulling.jpg, CU_Macky-EastdetaildoornoCulling.jpg และ CU_Macky-EastdetaildoornoCulling.jpg และ

ตัวอย่างนี้แสดงให้เห็นวิธีจัดโครงสร้างไฟล์ในที่เก็บถาวร KMZ อันที่จริง คุณสามารถจัดเรียงไฟล์ในโครงสร้างที่ดูเหมือนมีตรรกะกับคุณ เช่นเดียวกับที่จัดระเบียบไฟล์ลงในโฟลเดอร์หรือไดเรกทอรีในคอมพิวเตอร์ของคุณ เช่น การใส่รูปภาพทั้งหมดในไดเรกทอรี images/ อาจเป็นประโยชน์ การอ้างอิงที่สัมพันธ์กัน (เช่น ไฟล์ที่อ้างอิงในองค์ประกอบ <href> ที่ใช้ใน NetworkLink, Link, โฆษณาซ้อนทับ/ไอคอน และโมเดล) จะได้รับการระบุให้สัมพันธ์กับไฟล์ doc. KML หากคุณใส่ไดเรกทอรีรูปภาพ ข้อมูลจําเพาะของ <href> สําหรับรูปภาพจะเป็น images/myBrickTexture.jpg, images/myMountainOverlay.png เป็นต้น)

หากต้องการแก้ไขข้อมูลที่โหลดผ่าน NetworkLink เพิ่มขึ้นทีละน้อย ให้ใช้องค์ประกอบ Update ซึ่งเป็นองค์ประกอบย่อยของ NetworkLinkControl การอัปเดตอาจมีองค์ประกอบการเปลี่ยนแปลง สร้าง และลบจํานวนเท่าใดก็ได้ที่ประมวลผลตามลําดับ

รูปด้านล่างแสดงลําดับเหตุการณ์

  1. NetworkLink จะโหลดไฟล์ KML "ดั้งเดิม" ลงใน Google Earth องค์ประกอบที่จะได้รับการอัปเดตในภายหลังต้องมีการกําหนด id ที่ชัดเจนเมื่อระบุเป็นครั้งแรก รหัสต้องไม่ซ้ํากันภายในไฟล์ที่กําหนด
  2. NetworkLink อื่นโหลดไฟล์ KML ไฟล์ที่ 2 ที่มีการอัปเดต (ชุดการเปลี่ยนแปลง สร้าง และลบ) ไปยังออบเจ็กต์ KML ที่โหลดไว้แล้ว ไฟล์อัปเดตมีข้อมูลอ้างอิง 2 รายการเพื่อระบุข้อมูล KML ต้นฉบับ ดังนี้
  3. หากต้องการค้นหาออบเจ็กต์ภายใน Google Earth องค์ประกอบอัปเดตจะใช้องค์ประกอบ targetHref เพื่อระบุไฟล์ต้นฉบับที่กําหนดออบเจ็กต์ที่จะแก้ไข หากต้องการระบุออบเจ็กต์ที่จะแก้ไขหรือคอนเทนเนอร์สําหรับออบเจ็กต์ใหม่ องค์ประกอบการเปลี่ยนแปลง สร้าง และลบจะมีแอตทริบิวต์ targetId ที่อ้างอิงรหัสของออบเจ็กต์เหล่านั้น

ตัวอย่างการเปลี่ยนแปลง

ตัวอย่างต่อไปนี้แสดงชุดตัวอย่างของ NetworkLinks และไฟล์ข้อมูล KML วิธีเรียกใช้ตัวอย่าง

  1. โหลดไฟล์ Point-load. KML ลงใน Google Earth ไฟล์นี้มี NetworkLink ที่โหลดไฟล์ข้อมูลต้นฉบับ ซึ่งมี 2 จุด (Point. KML)
  2. โหลดไฟล์ Update-load. KML ลงใน Google Earth ไฟล์นี้มี NetworkLink รายการที่ 2 ซึ่งโหลดไฟล์ที่มีข้อมูลการอัปเดต (ชื่อใหม่สําหรับ point123)

ไฟล์แรกมี NetworkLink ที่โหลดไฟล์ข้อมูล ซึ่งมี 2 จุด หมุดที่มีจุดเหล่านี้จะมีรหัสที่กําหนดให้ ไฟล์ที่สามมี NetworkLink อื่น ซึ่งจะเพิ่มไฟล์อัปเดต องค์ประกอบการเปลี่ยนแปลงจะแก้ไขชื่อหมุดสําหรับ point123

ต่อไปนี้คือไฟล์ 4 รายการที่ใช้ในตัวอย่างนี้ นี่คือไฟล์ Point-load.chromebook ที่มี NetworkLink ที่โหลดไฟล์ข้อมูลต้นฉบับ (Point. KML)

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Loads Point.kml</name>
<Link>
<href>http://developers.google.com/kml/documentation/Point.kml</href>
</Link>
</NetworkLink>
</kml>

นี่คือไฟล์ Point. KML ที่มีข้อมูลต้นฉบับ (2 จุด) จุดที่มีรหัส "point123" คือจุดที่เราจะแก้ไข

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<Placemark id="pm123">
<name>point123</name>
<Point> <coordinates>-95.44,40.42,0</coordinates> </Point>
</Placemark> <Placemark id="pm456"> <name>point456</name>
<Point> <coordinates>-95.43,40.42,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>

ถัดไปคือไฟล์ NetworkLink ไฟล์ที่ 2 (Update-load. KML) ไฟล์นี้จะโหลดไฟล์ที่มีข้อมูลการอัปเดต

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLink>
<name>Update</name>
<Link>
<href>http://developers.google.com/kml/documentation/NetworkLinkControl-Update.kml</href></Link> </NetworkLink>
</kml>

และสุดท้าย นี่คือไฟล์ KML (NetworkLinkControl-Update.KML) ที่มีข้อมูลการอัปเดต:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<NetworkLinkControl>
<Update>
<targetHref>http://developers.google.com/kml/documentation/Point.kml</targetHref>
<Change>
<Placemark targetId="pm123"> <name>Name changed by Update Change</name>
<!-- coordinates remain the same -->
</Placemark>
</Change> </Update>
</NetworkLinkControl>
</kml>

การหมดอายุ

โดยค่าเริ่มต้น การโหลดข้อมูลเพียงครั้งเดียวคือลิงก์ไปยัง Google Earth หากต้องการป้องกันไม่ให้ข้อมูล KML กลายเป็นข้อมูลเก่า คุณสามารถระบุ RefreshMode ของ onExpire สําหรับข้อมูลที่โหลดโดยองค์ประกอบ <href> (ในองค์ประกอบลิงก์หรือไอคอน) โดยค่าเริ่มต้น ส่วนหัววันหมดอายุของ HTTP จะระบุเวลาหมดอายุ นอกจากนี้คุณยังระบุเวลาหมดอายุใน KML NetworkLinkControl ได้ด้วย เวลาจะแสดงในรูปแบบวันที่และเวลาวันที่และเวลา (ดูสคีมา XML ส่วนที่ 2: ประเภทข้อมูลประเภทที่ 2) หากมีการระบุทั้งส่วนหัว HTTP และเวลาหมดอายุของ KML เวลาหมดอายุของ KML จะมีความสําคัญเหนือกว่า

ตัวอย่างที่ 1: การหมดอายุโดยใช้เวลาหมดอายุของเซิร์ฟเวอร์ HTTP

ตัวอย่างนี้มีไว้เพื่อภาพประกอบเท่านั้น โดยจะแสดง GroundOverlay ที่มีไอคอนซึ่งกําหนด RefreshMode ของ onExpire เนื่องจากไม่มีการกําหนดเวลาหมดอายุของ KML ตัวอย่างนี้จึงใช้เวลาหมดอายุของเซิร์ฟเวอร์ HTTP

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>refreshMode onExpire</name>
<Snippet maxLines="10">
Image automatically reloads according to http
server expiration.

</Snippet>
<GroundOverlay>
<Icon>
<href>http://www.someserver.com/image.jpeg</href>
<refreshMode>onExpire</refreshMode>

</Icon>
<LatLonBox>
<!-- from edit session in earth -->
<!-- The roof of a building in the Presidio -->
<north>37.80385180177469</north>
<east>-122.4558710620651</east>
<south>37.80337403503347</south>
<west>-122.4564295653771</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

ตัวอย่างที่ 2: ตัวอย่างการใช้เวลาหมดอายุของ KML

ตัวอย่างต่อไปนี้แสดงหมุดที่พิกัดที่เลือกแบบสุ่ม ตัวอย่างนี้มีลิงก์ที่มี RefreshMode เป็น onExpire ในกรณีนี้ วันที่หมดอายุ/เวลาจะระบุ (ในสคริปต์ Python) โดยใช้องค์ประกอบ <expires> KML ใหม่ เวลาหมดอายุของ KML นี้จะมีลําดับความสําคัญเหนือกว่าช่วงเวลาที่อาจระบุไว้ในส่วนหัวของ HTTP

ต่อไปนี้คือ KML NetworkLink ที่มีลิงก์ที่มีองค์ประกอบ <href> และ <RefreshMode>

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<NetworkLink>
<Link>
<href>http://dev.someserver.com/cgi-bin/expires.py</href>
<refreshMode>onExpire</refreshMode>
</Link>
</NetworkLink>
</Document>
</kml>

นี่คือสคริปต์ Python ที่กําหนดเวลาหมดอายุของ [now + 11 seconds] และรีเฟรชพิกัดของหมุด ดังนี้

#!/usr/bin/python

import random
import time
lat = random.random() * 180. - 90.
lon = random.random() * 360. - 180.
now = time.time()
future = time.gmtime(now + 11)
y = future[0]
mo = future[1]
d = future[2]
h = future[3]
mi = future[4]
s = future[5]
iso8601 = '%04d-%02d-%02dT%02d:%02d:%02dZ' % (y,mo,d,h,mi,s)
print 'Content-type: application/vnd.google-earth.kml+xml'
print
print '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
print '<kml xmlns=\"http://earth.google.com/kml/2.1\">'
# must be child of <kml>
print '<NetworkLinkControl>'
print '<expires>%s</expires>' % iso8601
print '</NetworkLinkControl>'
print '<Placemark>'
print '<name>placemark expires %s</name>' % iso8601
print '<Point>'
print '<coordinates>%f,%f,0</coordinates>' % (lon,lat)
print '</Point>'
print '</Placemark>'
print '</kml>'

โฟลเดอร์ที่มีรายการวิทยุ

ตอนนี้คุณสามารถสร้างโฟลเดอร์ที่มีรายการในรูปแบบวิทยุได้โดยใช้องค์ประกอบ ListStyle และระบุ ListItemType ของ radioFolder ตัวอย่างต่อไปนี้แสดงการใช้งานองค์ประกอบสไตล์รายการใหม่นี้

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>ListStyle radiofolder</name>
<Folder>
<name>radioFolder Folder</name>
<Style>
<ListStyle>
<listItemType>radioFolder</listItemType>
</ListStyle>

</Style>
<Placemark>
<name>north</name>
<Point>
<coordinates>-114,41.79,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>south</name>
<Point>
<coordinates>-114,41.78,0</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>

ต่อไปนี้คือวิธีที่แผงสถานที่แสดงโฟลเดอร์นี้และบุตรหลานของหมุด