Trang này liệt kê các sự cố đã biết và cách giải quyết cho bản đồ vectơ và các tính năng WebGL.
Hỗ trợ trình duyệt/thiết bị
Bản xem trước tính năng WebGL hỗ trợ các trình duyệt và thiết bị giống như API JavaScript của Maps. Để kiểm tra xem trình duyệt trên một thiết bị cụ thể có hỗ trợ WebGL hay không, hãy truy cập get.webgl.org hoặc caniuse.com. Ngoài ra, vui lòng đảm bảo rằng tăng tốc phần cứng được bật trong phần cài đặt của trình duyệt, nếu không thì bản đồ vectơ sẽ quay về đường quét.
Đường quét hay vectơ?
Đôi khi, bản đồ vectơ có thể quay lại đường quét. Khi điều này xảy ra, các tính năng tuỳ thuộc vào bản đồ vectơ là không khả dụng. Có thể có dự phòng cho bản đồ raster vì nhiều lý do. Phần này cho bạn biết cách định cấu hình đúng trình duyệt web của bạn và cách kiểm tra có lập trình bản đồ vectơ hay không khả năng.
Kiểm tra các chức năng của trình duyệt trên Chrome
Để xác định khả năng tăng tốc phần cứng nào được bật trong một phiên bản sau khi cài đặt Chrome, hãy truy cập vào chrome://gpu/ và đảm bảo các mục sau đã được bật (có màu xanh lục):
- "OpenGL: Bật"
- "WebGL: Tăng tốc phần cứng"
- "WebGL2: Tăng tốc phần cứng"
(Đây chỉ là các yêu cầu cơ bản, có thể có những yếu tố khác hỗ trợ tác động, xem phần "Lỗi đã biết" below.)
Bật chế độ tăng tốc phần cứng
Để hỗ trợ bản đồ vectơ, tính năng tăng tốc phần cứng phải được bật trong hầu hết trình duyệt. Để bật chế độ tăng tốc phần cứng trong Chrome và Microsoft Edge, hãy mở Cài đặt, chọn Hệ thống và đảm bảo rằng Sử dụng chế độ tăng tốc phần cứng khi có.
- Tìm hiểu cách thay đổi tùy chọn trang web trong Safari.
- Tìm hiểu về các chế độ cài đặt hiệu suất của Firefox.
Kiểm tra đường quét hoặc vectơ theo phương thức lập trình
Bạn có thể kiểm tra bằng cách lập trình để xem bản đồ là đường quét hay vectơ, bằng cách
đang gọi map.getRenderingType()
. Ví dụ sau đây cho thấy mã cần giám sát
sự kiện renderingtype_changed
và hiển thị một cửa sổ thông tin cho biết liệu một
đường quét hoặc bản đồ vectơ đang được sử dụng.
TypeScript
/** * This example creates a map with an info window that shows whether * the map render type is raster or vector. */ function initMap() { const center = {lat: 0, lng: 0}; const map = new google.maps.Map(document.getElementById('map') as HTMLElement, { center, zoom: 10, heading: 0.0, tilt: 0.0, // Map ID for a vector map. mapId: '6ff586e93e18149f', }); const canvas = document.createElement("canvas"); const infoWindow = new google.maps.InfoWindow({ content: '', ariaLabel: 'Raster/Vector', position: center, }); infoWindow.open({ map, }); map.addListener('renderingtype_changed', () => { infoWindow.setContent(`${map.getRenderingType()}`); }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
/** * This example creates a map with an info window that shows whether * the map render type is raster or vector. */ function initMap() { const center = { lat: 0, lng: 0 }; const map = new google.maps.Map(document.getElementById("map"), { center, zoom: 10, heading: 0.0, tilt: 0.0, // Map ID for a vector map. mapId: "6ff586e93e18149f", }); const canvas = document.createElement("canvas"); const infoWindow = new google.maps.InfoWindow({ content: "", ariaLabel: "Raster/Vector", position: center, }); infoWindow.open({ map, }); map.addListener("renderingtype_changed", () => { infoWindow.setContent(`${map.getRenderingType()}`); }); } window.initMap = initMap;
Bạn cũng có thể sử dụng ngữ cảnh kết xuất WebGL để kiểm tra khả năng hỗ trợ WebGL 2:
const canvas = document.createElement("canvas");
canvas.getContext("webgl2") ? console.log("WebGL 2 is supported") : console.log("WebGL 2 is NOT supported");
Tìm hiểu các cách khác để phát hiện ngữ cảnh kết xuất WebGL theo phương thức lập trình.
Hỗ trợ web dành cho thiết bị di động
Hỗ trợ web dành cho thiết bị di động cho bản đồ vectơ vẫn đang trong giai đoạn thử nghiệm. Nhà phát triển có thể sử dụng API ứng dụng khách để phát hiện trình duyệt web dành cho thiết bị di động và sử dụng ID bản đồ được liên kết với bản đồ raster thay vì bản đồ vectơ. Chúng tôi dự đoán hiệu suất kết xuất sẽ chậm hơn trên một số thiết bị di động. Nếu bạn chọn sử dụng bản đồ vectơ trên web dành cho thiết bị di động, chúng tôi sẽ đánh giá rất cao số liệu thống kê và ý kiến phản hồi về hiệu suất. Như trên, nếu Hỗ trợ Bản đồ vectơ không có sẵn, ID bản đồ vectơ sẽ tự động phương án dự phòng là sử dụng bản đồ raster.
Lỗi
Lỗi đã biết
- Có một vấn đề đã biết trong Chrome trên một số thiết bị macOS dùng GPU AMD. Điều này có thể đặc biệt khó hiểu khi macOS tự động chuyển đổi giữa các GPU nhiều GPU, do đó bản đồ vectơ có thể không có sẵn tuỳ thuộc vào những ứng dụng khác đang chạy hoặc liệu màn hình ngoài có được kết nối hay không. Có vẻ như việc bật chương trình phụ trợ ANGLE Metal sắp tới của Chrome sẽ khắc phục sự cố này trong một số trường hợp. Bạn có thể theo dõi kế hoạch phát hành chung cho tính năng này tại https://bugs.chromium.org/p/chromium/issues/detail?id=1322521.
Báo cáo lỗi
- Vui lòng cập nhật trình duyệt và trình điều khiển GPU lên phiên bản mới nhất trước khi báo cáo lỗi.
- Đảm bảo bạn đã bật chế độ tăng tốc phần cứng trên
chrome://settings/system
(Chrome),about:preferences#general
(Firefox),edge://settings/system
(Microsoft Edge). Trong Safari, chế độ cài đặt này sẽ tự động bật trong macOS phiên bản 10.15 trở lên. Đối với(các) phiên bản MacOS cũ hơn, vui lòng chuyển đến phần cài đặt nâng cao của Safari và đảm bảo rằng tuỳ chọn "Sử dụng chế độ tăng tốc phần cứng" đã bật. - Bao gồm đường liên kết mã mẫu jsfiddle trong báo cáo lỗi.
- Vui lòng chụp ảnh màn hình
chrome://gpu
(Chrome),about:support
(Firefox) hoặcedge://gpu
(Microsoft Edge), đính kèm thông tin liên quan đến GPU trong báo cáo lỗi nếu bạn gặp bất kỳ sự cố kết xuất nào.
Cho chúng tôi biết bạn nghĩ gì
Chúng tôi đánh giá cao phản hồi của bạn vì chúng tôi cố gắng tạo ra trải nghiệm bản đồ vectơ tốt nhất cho bạn và người dùng cuối của bạn. Vui lòng cho chúng tôi biết nếu:
- Bất kỳ lỗi JavaScript hoặc lỗi/sự cố mới nào mà bạn phát hiện trong ứng dụng web.
- Độ trễ khi khởi động đối với bản đồ vectơ thấp hơn nhiều so với đường quét Maps. Trong trường hợp này, các chỉ số hồi quy độ trễ khi khởi động rất rất hữu ích. Nhìn chung, chúng tôi muốn biết liệu độ trễ khi khởi động có giảm hơn ngưỡng có thể chấp nhận được.
- Trải nghiệm bản đồ vectơ không mượt mà như mong đợi. Nếu bạn ghi nhật ký FPS hoặc độ giật, chúng so sánh như thế nào giữa bản đồ vectơ và bản đồ raster?
- Hiệu suất khác nhau đáng kể theo trình duyệt.
Nếu bạn đã thiết lập thử nghiệm A/B để so sánh bản đồ vectơ với bản đồ raster, vui lòng chia sẻ mọi ý kiến phản hồi về hiệu suất mà bạn nhận được, vì thông tin này sẽ rất hữu ích để giúp chúng tôi tinh chỉnh tính năng này.