Skip to content

Load the Google Maps JavaScript API script dynamically.

License

Notifications You must be signed in to change notification settings

googlemaps/js-api-loader

Folders and files

NameName
Last commit message
Last commit date
Feb 15, 2024
Oct 23, 2024
Jun 14, 2023
Apr 26, 2024
Sep 20, 2021
Sep 17, 2021
Oct 23, 2024
Apr 9, 2020
Sep 17, 2021
Jul 30, 2024
Feb 19, 2021
Apr 9, 2020
Jun 6, 2023
Sep 30, 2021
Feb 16, 2024
Nov 4, 2024
Oct 23, 2024
Oct 23, 2024
Jun 26, 2024
Feb 15, 2024
Feb 16, 2024

Repository files navigation

Google Maps JavaScript API Loader

npm Build Release codecov GitHub contributors semantic-release Discord

Description

Load the Google Maps JavaScript API script dynamically. This takes inspiration from the google-maps npm package but updates it with ES6, Promises, and TypeScript.

Install

Available via npm as the package @googlemaps/js-api-loader.

npm i @googlemaps/js-api-loader

Alternatively you may add the umd package directly to the html document using the unpkg link.

<script src="https://unpkg.com/@googlemaps/[email protected]/dist/index.min.js"></script>

When adding via unpkg, the loader can be accessed at google.maps.plugins.loader.Loader.

TypeScript

TypeScript users need to install the following types package.

npm i -D @types/google.maps

Documentation

The reference documentation can be found at this link. The Google Maps JavaScript API documentation is the authoritative source for the loader options.

Example

import { Loader } from '@googlemaps/js-api-loader';

const loader = new Loader({
  apiKey: "",
  version: "weekly",
  libraries: ["places"]
});

const mapOptions = {
  center: {
    lat: 0,
    lng: 0
  },
  zoom: 4
};

Using a promise for a specific library.

// Promise for a specific library
loader
  .importLibrary('maps')
  .then(({Map}) => {
    new Map(document.getElementById("map"), mapOptions);
  })
  .catch((e) => {
    // do something
  });

Using a promise for when the script has loaded.

// Promise
loader
  .load()
  .then((google) => {
    new google.maps.Map(document.getElementById("map"), mapOptions);
  })
  .catch(e => {
    // do something
  });

Alternatively, if you want to use a callback.

// Callback
loader.loadCallback(e => {
  if (e) {
    console.log(e);
  } else {
    new google.maps.Map(document.getElementById("map"), mapOptions);
  }
});

View the package in action here.

Support

This library is community supported. We're comfortable enough with the stability and features of the library that we want you to build real production applications on it.

If you find a bug, or have a feature suggestion, please log an issue. If you'd like to contribute, please read How to Contribute.