WebGL

Lớp WebGLOverlayView

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

Chế độ xem lớp phủ WebGL cung cấp quyền truy cập trực tiếp vào cùng một bối cảnh kết xuất WebGL mà Google Maps Platform sử dụng để kết xuất bản đồ cơ sở vectơ. Việc sử dụng bối cảnh kết xuất chung này mang lại các lợi ích như che khuất độ sâu bằng hình học toà nhà 3D và khả năng đồng bộ hoá nội dung 2D/3D với kết xuất bản đồ cơ sở.

Với Chế độ xem lớp phủ WebGL, bạn có thể thêm nội dung vào bản đồ bằng cách sử dụng trực tiếp WebGL hoặc các thư viện Đồ hoạ phổ biến như Three.js hoặc deck.gl. Để sử dụng lớp phủ, bạn có thể mở rộng google.maps.WebGLOverlayView và cung cấp phương thức triển khai cho từng hook vòng đời sau: WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLost và WebGLOverlayView.onRemove.

Bạn phải gọi WebGLOverlayView.setMap bằng một đối tượng Map hợp lệ để kích hoạt lệnh gọi đến phương thức onAdd() và setMap(null) để kích hoạt phương thức onRemove(). Bạn có thể gọi phương thức setMap() tại thời điểm tạo hoặc bất cứ lúc nào sau đó khi cần hiển thị lại lớp phủ sau khi xoá. Sau đó, phương thức onDraw() sẽ được gọi bất cứ khi nào một thuộc tính bản đồ thay đổi có thể làm thay đổi vị trí của phần tử, chẳng hạn như mức thu phóng, tâm hoặc loại bản đồ. Bạn chỉ có thể thêm WebGLOverlayView vào bản đồ vectơ có MapOptions.mapId (bao gồm cả bản đồ được đặt thành RenderingType.VECTOR MapOptions.renderingType và sử dụng Map.DEMO_MAP_ID làm MapOptions.mapId).

const {WebGLOverlayView} = await google.maps.importLibrary("maps");
WebGLOverlayView
WebGLOverlayView()
Tham số: Không có
Tạo WebGLOverlayView.
getMap
getMap()
Tham số: Không có
Giá trị trả về: Map|null|undefined
onAdd
onAdd()
Tham số: Không có
Giá trị trả về: Không có
Triển khai phương thức này để tìm nạp hoặc tạo cấu trúc dữ liệu trung gian trước khi lớp phủ được vẽ mà không cần quyền truy cập ngay vào ngữ cảnh kết xuất WebGL. Bạn phải triển khai phương thức này để hiển thị.
onContextLost
onContextLost()
Tham số: Không có
Giá trị trả về: Không có
Phương thức này được gọi khi bối cảnh kết xuất bị mất vì bất kỳ lý do gì và là nơi bạn nên dọn dẹp mọi trạng thái GL có sẵn vì không cần thiết nữa.
onContextRestored
onContextRestored(options)
Tham số:
  • options: WebGLStateOptions cho phép nhà phát triển khôi phục ngữ cảnh GL.
Giá trị trả về: Không có
Phương thức này được gọi sau khi có ngữ cảnh kết xuất. Sử dụng phương thức này để khởi động hoặc liên kết bất kỳ state WebGL nào, chẳng hạn như chương trình đổ bóng hoặc đối tượng vùng đệm.
onDraw
onDraw(options)
Tham số:
  • options: WebGLDrawOptions cho phép nhà phát triển kết xuất nội dung vào bản đồ cơ sở liên kết của Google.
Giá trị trả về: Không có
Triển khai phương thức này để vẽ nội dung WebGL ngay trên bản đồ. Xin lưu ý rằng nếu lớp phủ cần vẽ một khung mới, hãy gọi WebGLOverlayView.requestRedraw.
onRemove
onRemove()
Tham số: Không có
Giá trị trả về: Không có
Phương thức này được gọi khi lớp phủ bị xoá khỏi bản đồ bằng WebGLOverlayView.setMap(null) và là nơi bạn nên xoá tất cả đối tượng trung gian. Bạn phải triển khai phương thức này để hiển thị.
onStateUpdate
onStateUpdate(options)
Tham số:
  • options: WebGLStateOptions cho phép nhà phát triển khôi phục bối cảnh GL.
Giá trị trả về: Không có
Triển khai phương thức này để xử lý mọi bản cập nhật trạng thái GL bên ngoài khung ảnh động kết xuất.
requestRedraw
requestRedraw()
Tham số: Không có
Giá trị trả về: Không có
Kích hoạt bản đồ để vẽ lại một khung.
requestStateUpdate
requestStateUpdate()
Tham số: Không có
Giá trị trả về: Không có
Kích hoạt bản đồ để cập nhật trạng thái GL.
setMap
setMap([map])
Tham số:
  • map: Map optional Bản đồ để truy cập vào div, mô hình và trạng thái khung hiển thị.
Giá trị trả về: Không có
Thêm lớp phủ vào bản đồ.
Được kế thừa: addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

Giao diện WebGLDrawOptions

giao diện google.maps.WebGLDrawOptions

Các lựa chọn vẽ.

gl
WebGLRenderingContext để kết xuất WebGLOverlayView này.
transformer
Phép biến đổi ma trận từ không gian máy ảnh sang toạ độ vĩ độ/kinh độ.

Giao diện WebGLStateOptions

giao diện google.maps.WebGLStateOptions

Các lựa chọn về trạng thái GL.

gl
WebGLRenderingContext để kết xuất WebGLOverlayView này.

Giao diện CoordinateTransformer

giao diện google.maps.CoordinateTransformer

Giao diện này cung cấp các phương thức thuận tiện để tạo ma trận dùng cho việc kết xuất cảnh WebGL trên bản đồ cơ sở của Google.

Lưu ý: Bạn không nên giữ tham chiếu đến đối tượng này bên ngoài phạm vi của lệnh gọi WebGLOverlayView.onDraw đóng gói.

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
Tham số:
  • latLngAltitude: LatLngAltitude|LatLngAltitudeLiteral Vĩ độ, kinh độ và độ cao.
  • rotations: Float32Array optional Một mảng chứa góc xoay Euler theo độ, theo quy ước XYZ.
  • scale: Float32Array optional Mảng chứa mảng vô hướng XYZ để áp dụng cho trục chính.
Giá trị trả về: Ma trận MVP Float64Array để sử dụng với WebGL.
getCameraParams
getCameraParams()
Tham số: Không có
Giá trị trả về: CameraParams thông số máy ảnh

Giao diện CameraParams

interface google.maps.CameraParams extends CameraOptions

Dùng để truy xuất các tham số của camera, chẳng hạn như tham số của camera GL dùng cho WebGLOverlayView.

center
Loại: LatLng
heading
Loại: number
tilt
Loại: number
zoom
Loại: number