mirror of
https://github.com/google-map-react/google-map-react.git
synced 2025-12-08 18:26:32 +00:00
Merge pull request #154 from deviantony/master
Added support for minZoomOverride flag. If set to true, the minZoom o…
This commit is contained in:
commit
18f9c2cd0f
15
README.md
15
README.md
@ -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*)
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user