WebGL

คลาส WebGLOverlayView

class google.maps.WebGLOverlayView extends MVCObject
library "maps"

มุมมองการวางซ้อนของ WebGL ช่วยให้เข้าถึงบริบทการแสดงผล WebGL เดียวกันกับที่ Google Maps Platform ใช้เพื่อแสดงผลแผนที่ฐานแบบเวกเตอร์ได้โดยตรง การใช้บริบทการแสดงผลที่แชร์นี้ให้ประโยชน์ต่างๆ เช่น การบดบังความลึกด้วยเรขาคณิตของสิ่งปลูกสร้าง 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface google.maps.CameraParams extends CameraOptions

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

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