maxwells-react-google-maps
v6.0.3
Published
React.js Google Maps integration component
Downloads
36
Maintainers
Readme
react-google-maps
React.js Google Maps integration component
Under development for v6.0.0
Try it via:
npm install --save react-google-maps@beta
Call for maintainers
As the author (tomchentw) currently doesn't actively use this module, he's looking for awesome contributors to help and keep the community healthy. Please don't hesitate to contact him directly. See #266 for more information.
Documentation
Basically just a simple wrapper around Google Maps Javascript API. Also check out the demo app and it's source under src/app folder.
Note: this doc is under development for v6.0.0. Find docs for v5.x and v4.x with the git tags.
withGoogleMap
import { withGoogleMap } from "react-google-maps";
// Wrap all `react-google-maps` components with `withGoogleMap` HOC
// and name it GettingStartedGoogleMap
const GettingStartedGoogleMap = withGoogleMap(props => (
<GoogleMap
ref={props.onMapLoad}
defaultZoom={3}
defaultCenter={{ lat: -25.363882, lng: 131.044922 }}
onClick={props.onMapClick}
>
{props.markers.map((marker, index) => (
<Marker
{...marker}
onRightClick={() => props.onMarkerRightClick(index)}
/>
))}
</GoogleMap>
));
// Then, render it:
render(
<GettingStartedGoogleMap
containerElement={
<div style={{ height: `100%` }} />
}
mapElement={
<div style={{ height: `100%` }} />
}
onMapLoad={_.noop}
onMapClick={_.noop}
markers={markers}
onMarkerRightClick={_.noop}
/>,
document.getElementById('root')
);
GoogleMap
<GoogleMap
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
Marker
<Marker
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
Circle
<Circle
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
Rectangle
<Rectangle
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
Polyline
<Polyline
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
Polygon
<Polygon
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/>
KmlLayer
<KmlLayer
onClick={_.noop}
onDefaultViewportChanged={_.noop}
onStatusChanged={_.noop}
preserveViewport
suppressInfoWindows
/>
InfoWindow
<InfoWindow
onCloseClick={_.noop}
onDomReady={_.noop}
onZIndexChanged={_.noop}
/>
drawing/DrawingManager
<DrawingManager
onCircleComplete={_.noop}
onOverlayComplete={_.noop}
/>
places/SearchBox
<SearchBox
inputPlaceholder="Customized your placeholder"
inputStyle={INPUT_STYLE}
/>
addons/MarkerClusterer
<MarkerClusterer
onClusteringBegin={_.noop}
onMouseOut={_.noop}
/>
addons/InfoBox
<InfoBox
onCloseClick={_.noop}
onDomReady={_.noop}
onZIndexChanged={_.noop}
/>
async/withScriptjs
import { withGoogleMap } from "react-google-maps";
import withScriptjs from "react-google-maps/lib/async/withScriptjs";
// Wrap all `react-google-maps` components with `withGoogleMap` HOC
// then wraps it into `withScriptjs` HOC
// It loads Google Maps JavaScript API v3 for you asynchronously.
// Name the component AsyncGettingStartedExampleGoogleMap
const AsyncGettingStartedExampleGoogleMap = withScriptjs(
withGoogleMap(
props => (
<GoogleMap
ref={props.onMapLoad}
defaultZoom={3}
defaultCenter={{ lat: -25.363882, lng: 131.044922 }}
onClick={props.onMapClick}
>
{props.markers.map(marker => (
<Marker
{...marker}
onRightClick={() => props.onMarkerRightClick(marker)}
/>
))}
</GoogleMap>
)
);
// Then, render it:
render(
<AsyncGettingStartedExampleGoogleMap
googleMapURL="https://maps.googleapis.com/maps/api/js?v=3.exp"
loadingElement={
<div style={{ height: `100%` }}>
<FaSpinner
style={{
display: `block`,
width: `80px`,
height: `80px`,
margin: `150px auto`,
animation: `fa-spin 2s infinite linear`,
}}
/>
</div>
}
containerElement={
<div style={{ height: `100%` }} />
}
mapElement={
<div style={{ height: `100%` }} />
}
onMapLoad={_.noop}
onMapClick={_.noop}
markers={markers}
onMarkerRightClick={_.noop}
/>,
document.getElementById('root')
);
Changelog
The changelog is automatically generated via conventional-changelog and can be found in project root as well as npm tarball.