Hỗ trợ

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. Đồng thời, hãy đảm bảo rằng bạn đã bật tính năng tăng tốc phần cứng trong phần cài đặt của trình duyệt, nếu không, 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 đối tượng tuỳ thuộc vào bản đồ vectơ sẽ không có sẵn. Việc dự phòng cho bản đồ đường quét có thể xảy ra vì nhiều lý do. Phần này cho bạn biết cách định cấu hình chính xác trình duyệt web và cách kiểm tra bằng phương thức lập trình xem có tính năng bản đồ vectơ hay không.

Kiểm tra các chức năng của trình duyệt trên Chrome

Để xác định xem tính năng tăng tốc phần cứng nào được bật trong một bản cài đặt Chrome cụ thể, hãy chuyển đến chrome://gpu/ và đảm bảo rằng 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ơ sở. Ngoài ra, có thể có những yếu tố khác ảnh hưởng đến việc hỗ trợ. Vui lòng xem phần "Lỗi đã biết" bên dưới.)

Bật chế độ tăng tốc phần cứng

Để hỗ trợ bản đồ vectơ, bạn phải bật tính năng tăng tốc phần cứng trong hầu hết các trình duyệt. Để bật chế độ tăng tốc phần cứng trong Chrome và Microsoft Edge, hãy mở phần Cài đặt, chọn Hệ thống và đảm bảo rằng bạn đã bật chế độ Sử dụng chế độ tăng tốc phần cứng khi có thể.

Kiểm tra đường quét hoặc vectơ theo phương thức lập trình

Bạn có thể lập trình để kiểm tra xem bản đồ là đường quét hay vectơ bằng cách gọi map.getRenderingType(). Ví dụ sau đây cho thấy đoạn mã để theo dõi sự kiện renderingtype_changed và một cửa sổ thông tin cho biết liệu đường quét hoặc bản đồ vectơ có đang được sử dụng hay khô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 để phát hiện trình duyệt web dành cho thiết bị di động và sử dụng mã nhận dạng bản đồ được liên kết với bản đồ đường quét 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 đối với 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 các số liệu thống kê và ý kiến phản hồi về hiệu suất. Như trên, nếu Bản đồ vectơ không hỗ trợ, mã bản đồ vectơ sẽ tự động dự phòng để sử dụng bản đồ đường quét.

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 trên thiết bị có nhiều GPU, vì vậy, 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 việc màn hình bên ngoài có được kết nối hay không. Có vẻ như việc bật phần phụ trợ ANGLE Metal sắp tới của Chrome sẽ khắc phục được vấn đề này trong một số trường hợp. Bạn có thể làm theo 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 bạn đã bật chế độ "Use hardwareThiết lập tăng tốc phần cứng".
  • 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ặc edge://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 coi trọng ý kiến 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ạn phát hiện thấy mọi lỗi JavaScript hoặc lỗi/sự cố mới trong ứng dụng web của mình.
  • Độ trễ khi khởi động đối với bản đồ vectơ thấp hơn đáng kể so với bản đồ đường quét. Trong trường hợp này, các chỉ số cho hồi quy độ trễ khi khởi động sẽ rất hữu ích. Nhìn chung, chúng tôi muốn biết liệu độ trễ khi khởi động có vượt quá ngưỡng chấp nhận được hay không.
  • Trải nghiệm bản đồ vectơ không mượt mà như mong đợi. Nếu bạn ghi lại các chỉ số FPS hoặc độ giật, các chỉ số này có thể so sánh như thế nào giữa bản đồ vectơ và bản đồ đường quét?
  • 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 đồ đường quét, 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.