1.1.3 • Published 2 months ago

google-maps-api-react-map v1.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

google-maps-api-react-map package

Library google-maps-api-react-map allows you to render a Google Map in your application.

google-maps-api-react-map provides very simple bindings to the google maps api and lets you use it in your app as React components.

!IMPORTANT This library requires React v16.8 or later.

Installation

npm install --save google-maps-api-react-map 

or

yarn add google-maps-api-react-map

General Usage

importing the MapsApiProvider component from the library

import { MapsApiProvider } from "google-maps-api-react-map";

and now we can wrap our components from the ecosystem google-maps-api-react

 return (
    <div className="App">
      <MapsApiProvider apiKey="your google maps api key">
        <MapComponent center={center} />
      </MapsApiProvider>
    </div>
  );

MapComponent might look something like this

const MapComponent = (props: MapComponentProps) => {
  const { center } = props;
  return (
    <div className="map-container">
      <Map center={center}></Map>
    </div>
  );
};

prop center mandatory and must look like this

const center = { lat: 39.705958, lng: -75.538 };

minimal styles map.css

.map-container {
  width: 600px;
  height: 600px;
}

The Map component will occupy the entire container area.

Props

PropTypeRequiredDescription
backgroundColorstringoptionalColor used for the background of the Map div. This color will be visible when tiles have not yet loaded as the user pans. This option can only be set when the map is initialized.
centerLatLng | LatLngLiteralrequiredThe initial Map center.
childrenReact.ReactElement | React.ReactNode | React.JSX.ElementoptionalThe markup element to be rendered on the map.
classNamestringoptionalSpecifies the element’s CSS class name
clickableIconsbooleanoptionalWhen false, map icons are not clickable. A map icon represents a point of interest, also known as a POI.
controlSizenumberoptionalSize in pixels of the controls appearing on the map. This value must be supplied directly when creating the Map, updating this value later may bring the controls into an undefined state. Only governs the controls made by the Maps API itself. Does not scale developer created custom controls.
disableDefaultUIbooleanoptionalEnables/disables all default UI buttons. May be overridden individually. Does not disable the keyboard controls, which are separately controlled by the MapOptions.keyboardShortcuts option. Does not disable gesture controls, which are separately controlled by the MapOptions.gestureHandling option.
disableDoubleClickZoombooleanoptionalEnables/disables zoom and center on double click. Enabled by default.
draggableCursorstringoptionalNote: This property is not recommended. To disable zooming on double click, you can use the gestureHandling property, and set it to "none".
draggingCursorstringoptionalThe name or url of the cursor to display when mousing over a draggable map. This property uses the css cursor attribute to change the icon. As with the css property, you must specify at least one fallback cursor that is not a URL. For example: draggableCursor: 'url(http://www.example.com/icon.png), auto;'.
fullscreenControlbooleanoptionalThe enabled/disabled state of the Fullscreen control
fullscreenControlOptionsFullscreenControlOptionsoptionalThe display options for the Fullscreen control.
gestureHandlingstringoptionalThis setting controls how the API handles gestures on the map. Allowed values: "cooperative": Scroll events and one-finger touch gestures scroll the page, and do not zoom or pan the map. Two-finger touch gestures pan and zoom the map. Scroll events with a ctrl key or ⌘ key pressed zoom the map.In this mode the map cooperates with the page."greedy": All touch gestures and scroll events pan or zoom the map."none": The map cannot be panned or zoomed by user gestures."auto": (default) Gesture handling is either cooperative or greedy, depending on whether the page is scrollable or in an iframe.
headingnumberoptionalThe heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are snapped to the nearest available angle for which imagery is available.
isFractionalZoomEnabledbooleanoptionalDefault: true for vector maps and false for raster maps Whether the map should allow fractional zoom levels. Listen to isfractionalzoomenabled_changed to know when the default has been set.
keyboardShortcutsbooleanoptionalf false, prevents the map from being controlled by the keyboard. Keyboard shortcuts are enabled by default.
mapIdstringoptionalThe Map ID of the map. This parameter cannot be set or changed after a map is instantiated.
mapTypeControlbooleanoptionalThe initial enabled/disabled state of the Map type control.
mapTypeControlOptionsMapTypeControlOptionsoptionalThe initial display options for the Map type control.
mapTypeIdMapTypeId | stringoptionalThe initial Map mapTypeId. Defaults to ROADMAP.
maxZoomnumberoptionalThe maximum zoom level which will be displayed on the map. If omitted, or set to null, the maximum zoom from the current map type is used instead. Valid zoom values are numbers from zero up to the supported maximum zoom level.
minZoomnumberoptionalThe minimum zoom level which will be displayed on the map. If omitted, or set to null, the minimum zoom from the current map type is used instead. Valid zoom values are numbers from zero up to the supported maximum zoom level.
noClearbooleanoptionalIf true, do not clear the contents of the Map div.
restrictionMapRestrictionoptionalDefines a boundary that restricts the area of the map accessible to users. When set, a user can only pan and zoom while the camera view stays inside the limits of the boundary.
rotateControlbooleanoptionalThe enabled/disabled state of the Rotate control.
rotateControlOptionsRotateControlOptionsoptionalThe display options for the Rotate control.
scaleControlbooleanoptionalThe initial enabled/disabled state of the Scale control.
scaleControlOptionsScaleControlOptionsoptionalThe initial display options for the Scale control.
scrollwheelbooleanoptionalIf false, disables zooming on the map using a mouse scroll wheel. The scrollwheel is enabled by default.
streetViewStreetViewPanoramaoptionalA StreetViewPanorama to display when the Street View pegman is dropped on the map. If no panorama is specified, a default StreetViewPanorama will be displayed in the map's div when the pegman is dropped.
streetViewControlbooleanoptionalThe initial enabled/disabled state of the Street View Pegman control. This control is part of the default UI, and should be set to false when displaying a map type on which the Street View road overlay should not appear (e.g. a non-Earth map type).
streetViewControlOptionsStreetViewControlOptionsoptionalThe initial display options for the Street View Pegman control.
stylesArray < MapTypeStyle >optionalStyles to apply to each of the default map types. Note that for satellite/hybrid and terrain modes, these styles will only apply to labels and geometry.
tiltnumberoptionalFor vector maps, sets the angle of incidence of the map. The allowed values are restricted depending on the zoom level of the map. For raster maps, controls the automatic switching behavior for the angle of incidence of the map. The only allowed values are 0 and 45. The value 0 causes the map to always use a 0° overhead view regardless of the zoom level and viewport. The value 45 causes the tilt angle to automatically switch to 45 whenever 45° imagery is available for the current zoom level and viewport, and switch back to 0 whenever 45° imagery is not available (this is the default behavior). 45° imagery is only available for satellite and hybrid map types, within some locations, and at some zoom levels. Note: getTilt returns the current tilt angle, not the value specified by this option. Because getTilt and this option refer to different things, do not bind() the tilt property; doing so may yield unpredictable effects.
zoomnumberoptionalThe initial Map zoom level. Valid zoom values are numbers from zero up to the supported maximum zoom level. Larger zoom values correspond to a higher resolution.
zoomControlbooleanoptionalThe enabled/disabled state of the Zoom control.
zoomControlOptionsZoomControlOptionsoptionalThe display options for the Zoom control.

Events

Event NameReturnsNotes
onBoundsChangedMapMouseEventThis event is fired when the viewport bounds have changed.
onCenterChangedMapMouseEventThis event is fired when the map center property changes.
onClickMapMouseEventThis event is fired when the user clicks on the map. A MapMouseEvent with properties for the clicked location is returned unless a place icon was clicked, in which case an IconMouseEvent with a place ID is returned. IconMouseEvent and MapMouseEvent are identical, except that IconMouseEvent has the place ID field. The event can always be treated as an MapMouseEvent when the place ID is not important. The click event is not fired if a marker or info window was clicked.
onContextMenuMapMouseEventThis event is fired when the DOM contextmenu event is fired on the map container.
onDoubleClickMapMouseEventThis event is fired when the user double-clicks on the map. Note that the click event will sometimes fire once and sometimes twice, right before this one.
onDragnoneThis event is repeatedly fired while the user drags the map.
onDragEndnoneThis event is fired when the user stops dragging the map.
onDragStartnoneThis event is fired when the user starts dragging the map.
onHeadingChangednoneThis event is fired when the map heading property changes.
onIdlenoneThis event is fired when the map becomes idle after panning or zooming.
onMapCapabilitiesChangednoneThis event is fired when the map capabilities change
onMapTypeIdChangednoneThis event is fired when the mapTypeId property changes.
onMouseMoveMapMouseEventThis event is fired whenever the user's mouse moves over the map container.
onMouseOutMapMouseEventThis event is fired when the user's mouse exits the map container.
onMouseOverMapMouseEventThis event is fired when the user's mouse enters the map container.
onTilesLoadednoneThis event is fired when the visible tiles have finished loading.
onZoomChangednoneThis event is fired when the map zoom property changes.

|

Next.js

!IMPORTANT To use the library in a Next.js project, you need to make the component client-side.