Merge pull request #154 from deviantony/master

Added support for minZoomOverride flag. If set to true, the minZoom o…
This commit is contained in:
Ivan Starkov 2016-05-11 11:33:16 +03:00
commit 18f9c2cd0f
2 changed files with 26 additions and 2 deletions

View File

@ -385,6 +385,21 @@ and if so, uses it, so it won't load a second copy of the library.
<script type="text/javascript" src="https://maps.google.com/maps/api/js?libraries=places&sensor=false"></script>
```
### Override the default minimum zoom
*WARNING*: Setting these options can break markers calculation, causing no homeomorphism between screen coordinates and map.
You can use the `minZoomOverride` associated with the `minZoom` in the custom map options to prevent a minimum zoom from being calculated:
```javascript
function createMapOptions() {
return {
minZoomOverride: true,
minZoom: 2,
};
}
```
---
(*Really big thanks to [April Arcus](https://github.com/AprilArcus) for documentation fixes*)

View File

@ -306,6 +306,13 @@ export default class GoogleMap extends Component {
return DEFAULT_MIN_ZOOM;
}
_computeMinZoom = (minZoomOverride, minZoom) => {
if (minZoomOverride) {
return minZoom ? minZoom : DEFAULT_MIN_ZOOM;
}
return this._getMinZoom();
}
_initMap = () => {
// only initialize the map once
if (this.initialized_) {
@ -356,7 +363,7 @@ export default class GoogleMap extends Component {
const draggableOptions = this.props.draggable !== undefined &&
{draggable: this.props.draggable};
const minZoom = this._getMinZoom();
const minZoom = this._computeMinZoom(options.minZoomOverride, options.minZoom);
this.minZoom_ = minZoom;
const preMapOptions = {
@ -494,7 +501,9 @@ export default class GoogleMap extends Component {
maps.event.addListener(map, 'idle', () => {
if (this.resetSizeOnIdle_) {
this._setViewSize();
const currMinZoom = this._getMinZoom();
const currMinZoom = this._computeMinZoom(
this.props.options.minZoomOverride,
this.props.options.minZoom);
if (currMinZoom !== this.minZoom_) {
this.minZoom_ = currMinZoom;