Pomoc

Na tej stronie znajdziesz listę znanych problemów i obejść dotyczących map wektorowych oraz funkcji WebGL.

Obsługa przeglądarek i urządzeń

Wersja zapoznawcza funkcji WebGL obsługuje te same przeglądarki i urządzenia co interfejs Maps JavaScript API. Aby sprawdzić, czy przeglądarka na danym urządzeniu obsługuje WebGL, wejdź na get.webgl.org lub caniuse.com. Upewnij się też, że w ustawieniach przeglądarki jest włączona akceleracja sprzętowa. W przeciwnym razie mapy wektorowe zostaną zastąpione rastrowymi.

Mapa rastrowa czy wektorowa?

Czasami mapa wektorowa może zostać zastąpiona rastrową. W takim przypadku funkcje zależne od mapy wektorowej są niedostępne. Zastąpienie mapy wektorowej mapą rastrową może nastąpić z różnych powodów. Z tej sekcji dowiesz się, jak prawidłowo skonfigurować przeglądarkę internetową i jak programowo sprawdzić, czy jest dostępna funkcja mapy wektorowej.

Sprawdzanie możliwości przeglądarki w Chrome

Aby sprawdzić, które funkcje akceleracji sprzętowej są włączone w konkretnej instalacji Chrome, otwórz chrome://gpu/ i upewnij się , że te elementy są włączone (na zielono):

  • „OpenGL: Enabled” (OpenGL: włączony)
  • „WebGL: Hardware accelerated” (WebGL: przyspieszany sprzętowo)
  • „WebGL2: Hardware accelerated” (WebGL2: przyspieszany sprzętowo)

(To tylko podstawowe wymagania. Mogą występować inne czynniki, które mają wpływ na obsługę. Więcej informacji znajdziesz w sekcji „Znane błędy” poniżej).

Włączanie akceleracji sprzętowej

Aby obsługiwać mapy wektorowe, w większości przeglądarek musi być włączona akceleracja sprzętowa. Aby włączyć akcelerację sprzętową w Chrome i Microsoft Edge, otwórz Ustawienia, wybierz System i upewnij się, że opcja Użyj akceleracji sprzętowej gdy jest dostępna jest włączona.

Programowe sprawdzanie, czy mapa jest rastrowa czy wektorowa

Możesz programowo sprawdzić, czy mapa jest rastrowa czy wektorowa, wywołując funkcję map.getRenderingType(). Poniższy przykład pokazuje kod, który monitoruje zdarzenie renderingtype_changed i wyświetla okno informacyjne z informacją, czy używana jest mapa rastrowa czy mapa wektorowa.

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;

Możesz też użyć kontekstu renderowania WebGL, aby sprawdzić obsługę WebGL 2:

const canvas = document.createElement("canvas");
canvas.getContext("webgl2") ? console.log("WebGL 2 is supported") : console.log("WebGL 2 is NOT supported");

Dowiedz się, jak programowo wykryć kontekst renderowania WebGL.

Obsługa internetu mobilnego

Obsługa internetu mobilnego w przypadku map wektorowych jest wciąż w fazie eksperymentalnej. Deweloperzy mogą używać interfejsów API klienta do wykrywania przeglądarek internetowych na urządzeniach mobilnych i używania identyfikatora mapy powiązanego z mapą rastrową zamiast z mapą wektorową. W przypadku niektórych urządzeń mobilnych spodziewamy się wolniejszego renderowania. Jeśli zdecydujesz się używać map wektorowych w internecie mobilnym, będziemy wdzięczni za statystyki wydajności i opinie. Jak wspomnieliśmy wyżej, jeśli obsługa map wektorowych jest niedostępna, identyfikator mapy wektorowej automatycznie przełączy się na mapę rastrową.

Błędy

Znane błędy

  • W Chrome na niektórych urządzeniach z macOS z procesorami graficznymi AMD występuje znany problem. Może to być szczególnie mylące, gdy macOS dynamicznie przełącza się między procesorami graficznymi na urządzeniach z wieloma procesorami graficznymi. W zależności od tego, które aplikacje są uruchomione lub czy jest podłączony monitor zewnętrzny, mapy wektorowe mogą być niedostępne. W niektórych przypadkach włączenie nadchodzącego backendu ANGLE Metal w Chrome rozwiązuje ten problem. Ogólne plany wdrożenia znajdziesz na stronie https://bugs.chromium.org/p/chromium/issues/detail?id=1322521.

Zgłaszanie błędów

  • Zanim zgłosisz błąd, zaktualizuj przeglądarkę i sterownik procesora graficznego do najnowszej wersji.
  • Upewnij się, że ustawienie akceleracji sprzętowej jest włączone w chrome://settings/system (Chrome), about:preferences#general (Firefox) lub edge://settings/system (Microsoft Edge). W Safari to ustawienie jest włączone automatycznie w systemie macOS w wersji 10.15 lub nowszej. W starszych wersjach macOS otwórz ustawienia zaawansowane Safari i upewnij się, że opcja „Użyj akceleracji sprzętowej” jest włączona.
  • W zgłoszeniu błędu podaj link do przykładowego kodu jsfiddle.
  • Jeśli napotkasz problemy z renderowaniem, zrób też zrzut ekranu chrome://gpu (Chrome), about:support (Firefox) lub edge://gpu (Microsoft Edge) i dołącz do zgłoszenia błędu informacje związane z procesorem graficznym.

Chcemy poznać wasze opinie

Twoja opinia jest dla nas bardzo ważna, ponieważ staramy się zapewnić Tobie i Twoim użytkownikom jak najlepsze wrażenia z korzystania z map wektorowych. Daj nam znać, jeśli:

  • w aplikacjach internetowych wykryjesz nowe błędy JavaScriptu lub błędy/awarie;
  • opóźnienie uruchamiania map wektorowych jest znacznie większe niż w przypadku map rastrowych. W takim przypadku bardzo przydatne są dane o regresji opóźnienia uruchamiania. Ogólnie rzecz biorąc, chcemy wiedzieć, czy opóźnienie uruchamiania przekracza dopuszczalne progi.
  • korzystanie z map wektorowych nie jest tak płynne, jak mogłoby być. Jeśli rejestrujesz dane o liczbie klatek na sekundę lub o zacięciach, jak wypadają one w porównaniu z mapami wektorowymi i rastrowymi?
  • wydajność znacznie się różni w zależności od przeglądarki.

Jeśli masz skonfigurowane testy A/B do porównania map wektorowych z mapami rastrowymi, udostępnij nam wszelkie informacje o wydajności, które uzyskasz, ponieważ pomogą nam one udoskonalić tę funkcję.