Skip to main content

JavaScript API

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.