`google-map-react` is a component written over a small set of the [Google Maps API](https://developers.google.com/maps/). It allows you to render any React component on the Google Map. It is fully isomorphic and can render on a server. Additionally, it can render map components in the browser even if the Google Maps API is not loaded. It uses an internal, tweakable hover algorithm - every object on the map can be hovered. It allows you to create interfaces like this [example](http://istarkov.github.io/google-map-react/map/main) *(You can scroll the table, zoom/move the map, hover/click on markers, and click on table rows)* ##Installation ### npm ``` npm install --save google-map-react ``` ### bower ``` bower install --save google-map-react ``` The global will be available at: `window.GoogleMapReact` ##What's it Look Like? In the simple case you just need to add `lat` `lng` props to any child of `GoogleMap` component. [simple example in action](http://istarkov.github.io/google-map-react/map/simple) ```javascript import React, {PropTypes, Component} from 'react/addons'; import shouldPureComponentUpdate from 'react-pure-render/function'; import GoogleMap from 'google-map-react'; import MyGreatPlace from './my_great_place.jsx'; export default class SimpleMapPage extends Component { static defaultProps = { center: [59.938043, 30.337157], zoom: 9, greatPlaceCoords: {lat: 59.724465, lng: 30.080121} }; shouldComponentUpdate = shouldPureComponentUpdate; constructor(props) { super(props); } render() { return ( ); } } ``` ##Features ###Works with your Components Instead of the ugly Google Maps markers, balloons and other map components, you can render your cool animated react components on the map. ###Isomorphic Rendering It renders on the server. *(Welcome search engines)* *(you can disable javascript in browser dev tools, and reload any example page to see how it works)* ###Component Positions Calculated Independently of Google Maps API It renders components on the map before (and even without) the Google Maps API loaded. ###Google Maps API Loads on Demand There is no need to place a `