use-gmaps
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

use-gmaps

React hook to use Google Maps in your React apps

Install

Install with npm

npm install use-gmaps

Install with yarn

yarn add use-gmaps

This custom hook uses @googlemaps/js-api-loader to setup the map. More info at https://github.com/googlemaps/js-api-loader

Usage

Get Google Maps API key - More info https://developers.google.com/maps/documentation/javascript/get-api-key

Use the custom hook in your React app:

import React from 'react';
import useGoogleMaps from 'use-gmaps';

export default function App() {
  const { mapRef } = useGoogleMaps({ apiKey: 'ABC-XYZ' });

  return <div ref={mapRef} style={{ width: '100vw', height: '100vh' }} />;
}

If you are using Create React App (CRA) then you can also pass the key from environment variables (e.g. process.env.REACT_APP_GMAPS_API_KEY)

Another example to add a marker:

import React from 'react';
import useGoogleMaps from 'use-gmaps';

const { mapRef, map, isMapLoaded, currentCenter } = useGoogleMaps({
  apiKey: 'ABC-XYZ'
});

export default function App() {
  React.useEffect(() => {
    if (isMapLoaded) {
      // Just use native Google Maps API methods
      new window.google.maps.Marker({
        map,
        position: currentCenter,
        title: 'I am a marker'
      });
    }
  }, [isMapLoaded, map]);

  return <div ref={mapRef} style={{ width: '100vw', height: '100vh' }} />;
}

API

Here are other options that can be passed to the custom hook:

libraries

Load additional libraries by specifying a libraries option.

...
const { map } = useGoogleMaps({
  libraries: ['places']
});

More information at https://developers.google.com/maps/documentation/javascript/libraries

version

Set a version for Google Maps API. Default to weekly

...
const { map } = useGoogleMaps({
  version: 'weekly'
});

More information at https://developers.google.com/maps/documentation/javascript/versions

mapOptions

Set and override default options for the Map

...
const { map } = useGoogleMaps({
  mapOptions: {
    center: { lat:123,lng:456 },
    zoom: 18,
    styles: [{ ... }]
    ...
  }
});

More information at https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions


This custom hook API provides access to followings:

mapRef

The React ref reference that can be attached to any HTML element in the React app.

map

The native Google Maps Map object for currently loaded map.

isMapLoaded

true or false providing current state of loading map.

errors

Any errors from @googlemaps/js-api-loader while loading the map.

currentCenter

Current location object e.g. { lat: 123, lng: 456 }

The value will update with map drag.

Development

Run following commands to setup and start the test project using Create React App.

npm install
npm run setup
npm start

License

MIT License

© 2020–present Jabran Rafique

Package Sidebar

Install

npm i use-gmaps

Weekly Downloads

4

Version

1.2.1

License

MIT

Unpacked Size

8.17 kB

Total Files

7

Last publish

Collaborators

  • jabranr