WebGL

Lớp WebGLOverlayView

Lớp google.maps.WebGLOverlayView

Chế độ xem lớp phủ WebGL cung cấp quyền truy cập trực tiếp vào cùng ngữ cảnh kết xuất WebGL mà Nền tảng Google Maps sử dụng để hiển thị bản đồ cơ sở vectơ. Việc sử dụng ngữ cảnh kết xuất chia sẻ này mang lại các lợi ích như che khuất chiều sâu với 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 trực tiếp nội dung vào bản đồ của mình bằng cách sử dụng trực tiếp WebGL hoặc sử dụng các thư viện Đồ họa phổ biến như Three.js hoặc deck.gl. Để sử dụng lớp phủ này, 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 trong vòng đời sau đây: WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLostWebGLOverlayView.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()setMap(null) nhằm kích hoạt phương thức onRemove(). Phương thức setMap() có thể được gọi tại thời điểm xây dựng hoặc tại bất kỳ thời điểm nào sau đó, khi lớp phủ sẽ hiển thị lại 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 mà có thể thay đổi vị trí của phần tử, chẳng hạn như thu phóng, căn giữa 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).

Lớp này mở rộng MVCObject.

Truy cập bằng cách gọi const {WebGLOverlayView} = await google.maps.importLibrary("maps"). Xem Thư viện trong API JavaScript 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ả lại hàng: Không có
Triển khai phương pháp này để tìm nạp hoặc tạo cấu trúc dữ liệu trung gian trước khi vẽ lớp phủ mà không yêu cầu quyền truy cập ngay vào bối cảnh kết xuất WebGL. Phải triển khai phương thức này để hiển thị.
onContextLost
onContextLost()
Tham số: Không có
Giá trị trả lại hàng: Không có
Phương thức này được gọi khi ngữ cảnh kết xuất bị mất vì bất kỳ lý do gì và là nơi bạn nên xoá mọi trạng thái GL có sẵn từ trước vì không còn cần đến nữa.
onContextRestored
onContextRestored(options)
Các thông số: 
  • optionsWebGLStateOptions cho phép nhà phát triển khôi phục ngữ cảnh GL.
Giá trị trả lại hàng: 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 nó để khởi tạo hoặc liên kết bất kỳ trạng thái 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)
Các thông số: 
  • optionsWebGLDrawOptions cho phép nhà phát triển kết xuất nội dung trên bản đồ cơ sở liên kết của Google.
Giá trị trả lại hàng: Không có
Triển khai phương pháp này để vẽ nội dung WebGL trực tiếp trên bản đồ. 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ả lại hàng: 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ả các đối tượng trung gian. Phải triển khai phương thức này để hiển thị.
onStateUpdate
onStateUpdate(options)
Các thông số: 
  • optionsWebGLStateOptions cho phép nhà phát triển khôi phục ngữ cảnh GL.
Giá trị trả lại hàng: Không có
Triển khai phương thức này để xử lý mọi thông tin 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ả lại hàng: 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ả lại hàng: Không có
Kích hoạt bản đồ để cập nhật trạng thái GL.
setMap
setMap([map])
Các thông số: 
  • mapMap optional Bản đồ để truy cập div, mô hình và trạng thái xem.
Giá trị trả lại hàng: Không có
Thêm lớp phủ vào bản đồ.
Kế thừa: addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

Giao diện WebGLDrawOptions

Giao diện google.maps.WebGLDrawOptions

Tùy chọn vẽ.

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

Giao diện WebGLStateOptions

Giao diện google.maps.WebGLStateOptions

Tuỳ chọn 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 pháp thuận tiện cho việc tạo ma trận nhằm sử dụng để kết xuất cảnh WebGL trên bản đồ cơ sở của Google.

Lưu ý: 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])
Các thông số: 
  • latLngAltitudeLatLngAltitude|LatLngAltitudeLiteral Vĩ độ, kinh độ và độ cao.
  • rotationsFloat32Array optional Một mảng chứa góc xoay Euler theo độ, theo quy ước XYZ.
  • scaleFloat32Array optional Mảng chứa một mảng vô hướng XYZ để áp dụng cho trục chính.
Giá trị trả về:  Float64Array Ma trận MVP để sử dụng với WebGL.
getCameraParams
getCameraParams()
Tham số: Không có
Giá trị trả về: Thông số máy ảnh CameraParams

Giao diện CameraParams

Giao diện google.maps.CameraParams

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

Giao diện này mở rộng CameraOptions.

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