From f72e763657984c17e8bfee2d1e972ead63df3ff2 Mon Sep 17 00:00:00 2001 From: Matt Dean Date: Mon, 7 Nov 2016 16:21:26 -0500 Subject: [PATCH] expose map type callback --- README.md | 3 +++ src/google_map.js | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/README.md b/README.md index d2691419..a0d810f2 100644 --- a/README.md +++ b/README.md @@ -248,6 +248,9 @@ Example: #### onZoomAnimationEnd (func) +#### onMapTypeIdChange (func) +When the user changes the map type (HYBRID, ROADMAP, SATELLITE, TERRAIN) this fires + #### distanceToMouse (func) #### googleMapLoader (func) diff --git a/src/google_map.js b/src/google_map.js index eafdf40e..6cdfe381 100644 --- a/src/google_map.js +++ b/src/google_map.js @@ -80,6 +80,7 @@ export default class GoogleMap extends Component { onZoomAnimationStart: PropTypes.func, onZoomAnimationEnd: PropTypes.func, onDrag: PropTypes.func, + onMapTypeIdChange: PropTypes.func, options: PropTypes.any, distanceToMouse: PropTypes.func, hoverDistance: PropTypes.number, @@ -648,6 +649,10 @@ export default class GoogleMap extends Component { this_.dragTime_ = (new Date()).getTime(); this_._onDrag(); }); + // user choosing satellite vs roads, etc + maps.event.addListener(map, 'maptypeid_changed', () => { + this_._onMapTypeIdChange(map.getMapTypeId()); + }); }) .catch(e => { console.error(e); // eslint-disable-line no-console @@ -675,6 +680,9 @@ export default class GoogleMap extends Component { _onDrag = (...args) => this.props.onDrag && this.props.onDrag(...args); + _onMapTypeIdChange = (...args) => this.props.onMapTypeIdChange && + this.props.onMapTypeIdChange(...args); + _onZoomAnimationStart = (...args) => this.props.onZoomAnimationStart && this.props.onZoomAnimationStart(...args)