React.js Google Maps integration component
Under development for v6.0.0
Try it via:
npm install --save react-google-maps@betaAs 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 hensitate to contact him directly. See #266 for more information.
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.
// 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
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><Marker
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><Circle
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><Rectangle
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><Polyline
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><Polygon
onClick={_.noop}
onRightClick={_.noop}
onDragStart={_.noop}
/><KmlLayer
onClick={_.noop}
onDefaultViewportChanged={_.noop}
onStatusChanged={_.noop}
/><InfoWindow
onCloseClick={_.noop}
onDomReady={_.noop}
onZIndexChanged={_.noop}
/><DrawingManager
onCircleComplete={_.noop}
onOverlayComplete={_.noop}
/><SearchBox
inputPlaceholder="Customized your placeholder"
inputStyle={INPUT_STYLE}
/><MarkerClusterer
onClusteringBegin={_.noop}
onMouseOut={_.noop}
/><InfoBox
onCloseClick={_.noop}
onDomReady={_.noop}
onZIndexChanged={_.noop}
/>// 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(
<GettingStartedGoogleMap
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')
);The changelog is automatically generated via conventional-changelog and can be found in project root as well as npm tarball.