

GitHub - google-map-react/google-map-react: Google map library for react that al...
source link: https://github.com/google-map-react/google-map-react
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
Google Map React ·

google-map-react
is a component written over a small set of the Google Maps API. 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 (You can scroll the table, zoom/move the map, hover/click on markers, and click on table rows)
Getting started
In the simple case you just need to add lat
and lng
props to any child of GoogleMapReact
component.
import React, { Component } from 'react'; import GoogleMapReact from 'google-map-react'; const AnyReactComponent = ({ text }) => <div>{text}</div>; class SimpleMap extends Component { static defaultProps = { center: { lat: 59.95, lng: 30.33 }, zoom: 11 }; render() { return ( // Important! Always set the container height explicitly <div style={{ height: '100vh', width: '100%' }}> <GoogleMapReact bootstrapURLKeys={{ key: /* YOUR KEY HERE */ }} defaultCenter={this.props.center} defaultZoom={this.props.zoom} > <AnyReactComponent lat={59.955413} lng={30.337844} text="My Marker" /> </GoogleMapReact> </div> ); } } export default SimpleMap;
My map doesn't appear!
- Make sure the container element has width and height. The map will try to fill the parent container, but if the container has no size, the map will collapse to 0 width / height. This is not a requirement for google-map-react, its a requirement for google-maps in general.
Installation
npm:
npm install --save google-map-react
yarn:
yarn add google-map-react
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 <script src=
tag at top of page. The Google Maps API loads upon the first usage of the GoogleMapReact
component.
Use Google Maps API
You can access to Google Maps map
and maps
objects by using onGoogleApiLoaded
, in this case you will need to set yesIWantToUseGoogleMapApiInternals
to true
... const handleApiLoaded = (map, maps) => { // use map and maps objects }; ... <GoogleMapReact bootstrapURLKeys={{ key: /* YOUR KEY HERE */ }} defaultCenter={this.props.center} defaultZoom={this.props.zoom} yesIWantToUseGoogleMapApiInternals onGoogleApiLoaded={({ map, maps }) => handleApiLoaded(map, maps)} > <AnyReactComponent lat={59.955413} lng={30.337844} text="My Marker" /> </GoogleMapReact>
PST: Remember to set yesIWantToUseGoogleMapApiInternals
to true.
Internal Hover Algorithm
Now every object on the map can be hovered (however, you can still use css hover selectors if you want). If you try zooming out here example, you will still be able to hover on almost every map marker.
Examples
-
Hover effects: simple hover (source); distance hover (source)
-
Example project: main (source); balderdash (same source as main)
-
Clustering example (new: source) google-map-clustering-example
-
How to render thousands of markers (new: source) google-map-thousands-markers
-
Examples: Examples Old examples
-
jsbin example jsbin example
-
webpackbin examples (new) docs with webpackbin examples (In progress)
-
local develop example (new) develop example
Documentation
You can find the documentation here:
-
NEW DOCS (In progress)
Contribute
To get a reloadable env, with map, clone this project and
npm install
npm run start
# open browser at localhost:4000
Thank you
(Really big thanks to April Arcus for documentation fixes)
(thank you Dan Abramov for titles structure)
(great thanks to Vladimir Akimov he knows why)
License
MIT (http://www.opensource.org/licenses/mit-license.php)
Known Issues
- Older browsers (http://caniuse.com/#feat=promises) will need a ES6 Promise polyfill in order to work.
!!! We are looking for contributors
We're actively looking for contributors, please send a message to the Owner or any of the Collaborators.
Recommend
-
8
Is there a JavaScript map library where you can add data? advertisements Is there any javascript charting library where you can append data wi...
-
7
react-native-naver-map Naver Map For React native. This is Naver Map's React Native Bridge. npm install react-native-nmap --save; React Native 0.60+
-
27
Top 5 Map Libraries for React in 2021Recommended Map Libraries for your React ApplicationImplementing user-friendly, effective map functionalities can be a challenging ta...
-
10
English version here 本教程提到的方法仅用于研究和学习用途。我不对使用、拓展该教程及方法所造成的任何法律责任和损失负责。 替换本地的DNS,将微...
-
11
React技巧之中断map循环 正文从这开始~ 在Reac...
-
6
React技巧之中断map循环更新日期: 2022-07-02阅读: 34标签: 循环分...
-
13
Maps Cross platform map for react & react-native Jul 08, 2022 1 min read @teovilla/react-native-web-maps
-
10
React报错之map() is not a function 正文从这开始~
-
6
React报错之map() is not a function更新日期: 2022-08-03阅读: 24标签: React作...
-
10
2 天前發表2 天前更新Program1 分鐘讀完 (大約142個字)React + Google Map 模仿 Airbnb 效果如過您希...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK