Wrapper for asynchronously used Google Maps API

Google Maps

Wrapper for asynchronously used Google Maps API in browser.

This module does not change original google maps api in any way. It just provide easy way to load and use this API asynchronously.

Environment with common js:

$ npm install google-maps

Download and import one of these files into your .html file:

var GoogleMapsLoader = require('google-maps');      // only for common js environments
GoogleMapsLoader.load(function(google) {
    new google.maps.Map(el, options);

If you are not using environment with common js support, you can use GoogleMapsLoader variable directly. It is already in window object.

GoogleMapsLoader.KEY = 'qwertyuiopasdfghjklzxcvbnm';
GoogleMapsLoader.CLIENT = 'yourclientkey';
GoogleMapsLoader.VERSION = '3.14';
GoogleMapsLoader.SENSOR = true
GoogleMapsLoader.LIBRARIES = ['geometry', 'places'];

For testing purposes is good to remove all google objects and restore loader to its original state.

GoogleMapsLoader.release(function() {
    console.log('No google maps api around');
GoogleMapsLoader.onLoad(function(google) {
    console.log('I just loaded google maps api');
$ npm test
  • 2.1.1

    • Sh**.... Forgot to increase version at package.json
  • 2.1.0

    • Added support for libraries #3 (thanks popara)
    • Added tests
    • Small optimization
  • 2.0.0

    • Added Maps API for Business support
    • Added standalone version for non common js environments
    • Removed dependency on q package
    • Using callback instead of promise
    • Added tests + travis
    • Added status badges
  • 1.0.0

    • Initial version