Migracja: moduł Mapy w google.load

13 października 2021 r. wyłączymy usługę, która udostępnia moduł „Mapy” w google.load. Oznacza to, że po 13 października 2021 r. próba użycia modułu „Maps” w google.load spowoduje błąd (moduł „maps” nie jest obsługiwany) i mapa się nie załaduje. Aby uniknąć potencjalnych problemów, musisz przejść na jedną z alternatywnych opcji.

Co muszę zrobić?

Najpierw usuń tag <script>, który wczytuje moduł ładujący google.load, a potem usuń wywołania google.load. Jeśli używasz Google Loader do innych celów, możesz pozostawić tag <script> modułu ładującego.

Następnie wdróż nowy sposób wczytywania interfejsu Maps JavaScript API (wybierz jedną z tych opcji):

Aktualny przykład z użyciem Google Loader

Poniższy przykład pokazuje, jak obecnie używany jest Google Loader do wczytywania interfejsu Maps JavaScript API (są 2 bloki <script>):

Przed

<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load("maps", "3.exp", {
    "callback": initMap,
    "key": "YOUR_KEY",
    "libraries": "places,visualization"
});
function initMap() {
  // Google Maps JS API is loaded and available
}
</script>

W tym przypadku interfejs Maps JavaScript API jest wczytywany w tym samym czasie co wczytanie strony. Aby wdrożyć wczytywanie w wierszu, najpierw zastąp tag <script>, który wczytuje www.google.com/jsapi („przed”), tagiem <script> pokazanym w tym przykładzie:

<script async src="https://maps.googleapis.com/maps/api/js?libraries=places,visualization&key=YOUR_API_KEY&v=weekly&callback=initMap">
</script>

Następnie w kodzie JavaScript usuń wywołanie funkcji google.load, ponieważ nie jest już potrzebne. Poniższy przykład pokazuje pustą funkcję initMap(), która jest wywoływana po pomyślnym wczytaniu biblioteki Map:

<script type='text/javascript'>
function initMap() {
  // Google Maps JS API is loaded and available
}
</script>

Zobacz dokumentację

dynamiczne wczytywanie z innego pliku JavaScript,

Dynamiczne wczytywanie pozwala kontrolować, kiedy interfejs Maps JavaScript API jest wczytywany. Możesz na przykład poczekać z wczytaniem interfejsu Maps JavaScript API, aż użytkownik kliknie przycisk lub wykona inne działanie. Aby wdrożyć dynamiczne wczytywanie, najpierw zastąp tag <script>, który wczytuje www.google.com/jsapi („przed”), kodem, który programowo dodaje tag <script>, jak w tym przykładzie:

var script = document.createElement('script');
script.src =
'https://maps.googleapis.com/maps/api/js?libraries=places,visualization&key=YOUR_API_KEY&v=weekly&callback=initMap';
script.async=true;

Następnie dołącz funkcję wywołania zwrotnego do obiektu okna w ten sposób:

window.initMap = function() {
  // Google Maps JS API is loaded and available
};

Na koniec dodaj do nagłówka strony tag <script> w ten sposób:

document.head.appendChild(script);

Zobacz dokumentację