WebGL

WebGLOverlayView class

google.maps.WebGLOverlayView class

มุมมองการวางซ้อน WebGL ให้สิทธิ์เข้าถึงโดยตรงในบริบทการแสดงผล WebGL เดียวกันกับที่แพลตฟอร์ม Google Maps ใช้เพื่อแสดงผลแผนที่ฐานเวกเตอร์ การใช้บริบทการแสดงผลที่แชร์นี้ให้ประโยชน์ต่างๆ เช่น การบดบังด้วยเรขาคณิตของอาคาร 3 มิติ และความสามารถในการซิงค์เนื้อหา 2 มิติ/3 มิติกับการแสดงผลแผนที่ฐาน

เมื่อใช้มุมมองการวางซ้อน WebGL คุณจะเพิ่มเนื้อหาลงในแผนที่ได้โดยใช้ WebGL โดยตรง หรือจะใช้คลังกราฟิกยอดนิยมอย่าง Three.js หรือ deck.gl ก็ได้ หากต้องการใช้การวางซ้อน คุณสามารถขยาย google.maps.WebGLOverlayView และระบุการใช้งานสำหรับฮุกวงจรชีวิตของ WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLost และ WebGLOverlayView.onRemove แต่ละรายการ

คุณต้องเรียก WebGLOverlayView.setMap ด้วยออบเจ็กต์ Map ที่ถูกต้องเพื่อเรียกใช้เมธอด onAdd() และ setMap(null) เพื่อเรียกใช้เมธอด onRemove() เรียกเมธอด setMap() ได้ในตอนที่สร้างหรือเมื่อใดก็ได้หลังจากนั้นเมื่อต้องการให้แสดงการวางซ้อนอีกครั้งหลังจากนําออก จากนั้นระบบจะเรียกใช้เมธอด onDraw() ทุกครั้งที่มีการเปลี่ยนแปลงพร็อพเพอร์ตี้แผนที่ที่อาจเปลี่ยนตําแหน่งขององค์ประกอบ เช่น การซูม การจัดกึ่งกลาง หรือประเภทแผนที่ WebGLOverlayView เพิ่มลงในแผนที่เวกเตอร์ที่มี MapOptions.mapId ได้เท่านั้น (รวมถึงแผนที่ที่ตั้งค่าเป็น RenderingType.VECTOR MapOptions.renderingType และใช้ Map.DEMO_MAP_ID เป็น MapOptions.mapId)

คลาสนี้ขยายจาก MVCObject

เข้าถึงโดยการโทรหา const {WebGLOverlayView} = await google.maps.importLibrary("maps") โปรดดูไลบรารีใน Maps JavaScript API

WebGLOverlayView
WebGLOverlayView()
พารามิเตอร์: ไม่มี
สร้าง WebGLOverlayView
getMap
getMap()
พารามิเตอร์: ไม่มี
ผลลัพธ์:  Map|null|undefined
onAdd
onAdd()
พารามิเตอร์: ไม่มี
ผลลัพธ์: ไม่มี
ใช้เมธอดนี้เพื่อดึงข้อมูลหรือสร้างโครงสร้างข้อมูลกลางก่อนที่จะวาดการวางซ้อนที่ไม่จําเป็นต้องเข้าถึงบริบทการแสดงผล WebGL ในทันที ต้องติดตั้งใช้งานเมธอดนี้เพื่อแสดงผล
onContextLost
onContextLost()
พารามิเตอร์: ไม่มี
ผลลัพธ์: ไม่มี
ระบบจะเรียกใช้เมธอดนี้เมื่อบริบทการแสดงภาพหายไปไม่ว่าด้วยเหตุผลใดก็ตาม และคุณควรล้างสถานะ GL ที่มีอยู่เดิมเนื่องจากไม่จําเป็นต้องใช้แล้ว
onContextRestored
onContextRestored(options)
พารามิเตอร์: 
  • optionsWebGLStateOptions ที่ช่วยให้นักพัฒนาแอปกู้คืนบริบท GL ได้
ผลลัพธ์: ไม่มี
ระบบจะเรียกใช้เมธอดนี้เมื่อมีบริบทการแสดงผล ใช้เพื่อเริ่มต้นหรือเชื่อมโยงสถานะ WebGL เช่น Shader หรือออบเจ็กต์บัฟเฟอร์
onDraw
onDraw(options)
พารามิเตอร์: 
  • optionsWebGLDrawOptions ที่ช่วยให้นักพัฒนาแอปแสดงผลเนื้อหาไปยังแผนที่ฐานของ Google ที่เชื่อมโยง
ผลลัพธ์: ไม่มี
ใช้วิธีการนี้เพื่อวาดเนื้อหา WebGL บนแผนที่โดยตรง โปรดทราบว่าหากการวางซ้อนต้องวาดเฟรมใหม่ ให้เรียกใช้ WebGLOverlayView.requestRedraw
onRemove
onRemove()
พารามิเตอร์: ไม่มี
ผลลัพธ์: ไม่มี
ระบบจะเรียกใช้เมธอดนี้เมื่อนำการวางซ้อนออกจากแผนที่ด้วย WebGLOverlayView.setMap(null) และคุณควรนำออบเจ็กต์กลางทั้งหมดออก ต้องติดตั้งใช้งานเมธอดนี้เพื่อแสดงผล
onStateUpdate
onStateUpdate(options)
พารามิเตอร์: 
  • optionsWebGLStateOptions ที่ช่วยให้นักพัฒนาแอปกู้คืนบริบท GL ได้
ผลลัพธ์: ไม่มี
ใช้เมธอดนี้เพื่อจัดการการอัปเดตสถานะ GL นอกเฟรมภาพเคลื่อนไหวที่แสดงผล
requestRedraw
requestRedraw()
พารามิเตอร์: ไม่มี
ผลลัพธ์: ไม่มี
ทริกเกอร์แผนที่ให้วาดเฟรมใหม่
requestStateUpdate
requestStateUpdate()
พารามิเตอร์: ไม่มี
ผลลัพธ์: ไม่มี
ทริกเกอร์แผนที่ให้อัปเดตสถานะ GL
setMap
setMap([map])
พารามิเตอร์: 
  • mapMap optional แผนที่เข้าถึงสถานะ div, โมเดล และมุมมอง
ผลลัพธ์: ไม่มี
เพิ่มการวางซ้อนลงในแผนที่
รับค่ามา: addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

WebGLDrawOptions

google.maps.WebGLDrawOptions อินเทอร์เฟซ

ตัวเลือกการวาด

gl
ประเภท:  WebGLRenderingContext
WebGLRenderingContext ที่จะใช้แสดงผล WebGLOverlayView นี้
transformer
ประเภท:  CoordinateTransformer
การเปลี่ยนรูปแบบเมทริกซ์จากพื้นที่ของกล้องเป็นพิกัดละติจูด/ลองจิจูด

WebGLStateOptions interface

google.maps.WebGLStateOptions อินเทอร์เฟซ

ตัวเลือกสถานะ GL

gl
ประเภท:  WebGLRenderingContext
WebGLRenderingContext ที่จะใช้แสดงผล WebGLOverlayView นี้

อินเทอร์เฟซ CoordinateTransformer

google.maps.CoordinateTransformer อินเทอร์เฟซ

อินเทอร์เฟซนี้มีวิธีการที่สะดวกในการสร้างเมทริกซ์เพื่อใช้สำหรับการแสดงผลฉาก WebGL บนแผนที่ฐานของ Google

หมายเหตุ: การอ้างอิงออบเจ็กต์นี้ไม่ควรอยู่นอกขอบเขตของการเรียก WebGLOverlayView.onDraw แบบรวม

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
พารามิเตอร์: 
  • latLngAltitudeLatLngAltitude|LatLngAltitudeLiteral ละติจูด ลองจิจูด และระดับความสูง
  • rotationsFloat32Array optional อาร์เรย์ที่มีมุมการหมุนของ Euler เป็นองศาตามรูปแบบ XYZ
  • scaleFloat32Array optional อาร์เรย์ที่มีอาร์เรย์สเกลาร์ XYZ เพื่อใช้กับแกนหลัก
ค่าที่แสดงผล:  Float64Array แมทริกซ์ MVP เพื่อใช้กับ WebGL
getCameraParams
getCameraParams()
พารามิเตอร์: ไม่มี
ผลลัพธ์:  พารามิเตอร์กล้อง CameraParams

CameraParams interface

google.maps.CameraParams อินเทอร์เฟซ

ใช้สำหรับดึงข้อมูลพารามิเตอร์ของกล้อง เช่น ของกล้อง GL ที่ใช้สำหรับ WebGLOverlayView

อินเทอร์เฟซนี้ขยายจาก CameraOptions

center
ประเภท:  LatLng
heading
ประเภท:  number
tilt
ประเภท:  number
zoom
ประเภท:  number