# Module: ol/View

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/View

### Classes

View

### Functions

#### getView(source, transforms){Promise<ViewOptions>}

View.js, line 2248

      import {getView} from 'ol/View';

  Applies a series of transforms to a view that is resolved from a source.

  Name | Type | Description
  --- | --- | ---
  `source` | Source | The source.
  `transforms` | ViewTransform | The transforms to apply.

  ##### Returns:

  The view options.

#### withExtentCenter(){ViewTransform}

View.js, line 2217

      import {withExtentCenter} from 'ol/View';

  Applies a center based on the extent.

  ##### Returns:

  A view transform.

#### withLowerResolutions(num){ViewTransform}

View.js, line 2195

      import {withLowerResolutions} from 'ol/View';

  Adds lower resolutions.

  Name | Type | Description
  --- | --- | ---
  `num` | number | The number of lower resolution levels to use.

  ##### Returns:

  A view transform.

#### withZoom(z){ViewTransform}

View.js, line 2235

      import {withZoom} from 'ol/View';

  Applies a zoom level.

  Name | Type | Description
  --- | --- | ---
  `z` | number | The zoom level.

  ##### Returns:

  A view transform.

### Type Definitions

#### Animation{Object}

  An animation configuration

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sourceCenter` | Coordinate | undefined | Source center.
  `targetCenter` | Coordinate | undefined | Target center.
  `sourceResolution` | number | undefined | Source resolution.
  `targetResolution` | number | undefined | Target resolution.
  `sourceRotation` | number | undefined | Source rotation.
  `targetRotation` | number | undefined | Target rotation.
  `anchor` | Coordinate | undefined | Anchor.
  `start` | number | Start.
  `duration` | number | Duration.
  `complete` | boolean | Complete.
  `easing` | function | Easing.
  `callback` | function | Callback.

#### AnimationOptions{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `center` | Coordinate | undefined | The center of the view at the end of the animation.
  `zoom` | number | undefined | The zoom level of the view at the end of the animation. This takes precedence over `resolution`.
  `resolution` | number | undefined | The resolution of the view at the end of the animation. If `zoom` is also provided, this option will be ignored.
  `rotation` | number | undefined | The rotation of the view at the end of the animation.
  `anchor` | Coordinate | undefined | Optional anchor to remain fixed during a rotation or resolution animation.
  `duration` | number (defaults to 1000) | The duration of the animation in milliseconds.
  `easing` | function | undefined | The easing function used during the animation (defaults to `inAndOut`). The function will be called for each frame with a number representing a fraction of the animation's duration. The function should return a number between 0 and 1 representing the progress toward the destination state.

#### Constraints{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `center` | Type | Center.
  `resolution` | Type | Resolution.
  `rotation` | Type | Rotation.

#### FitOptions{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `size` | Size | undefined | The size in pixels of the box to fit the extent into. Defaults to the size of the map the view is associated with. If no map or multiple maps are connected to the view, provide the desired box size (e.g. `map.getSize()`).
  `padding` | Array.<number> (defaults to [0, 0, 0, 0]) | Padding (in pixels) to be cleared inside the view. Values in the array are top, right, bottom and left padding.
  `nearest` | boolean (defaults to false) | If the view `constrainResolution` option is `true`, get the nearest extent instead of the closest that actually fits the view.
  `minResolution` | number (defaults to 0) | Minimum resolution that we zoom to.
  `maxZoom` | number | undefined | Maximum zoom level that we zoom to. If `minResolution` is given, this property is ignored.
  `duration` | number | undefined | The duration of the animation in milliseconds. By default, there is no animation to the target extent.
  `easing` | function | undefined | The easing function used during the animation (defaults to `inAndOut`). The function will be called for each frame with a number representing a fraction of the animation's duration. The function should return a number between 0 and 1 representing the progress toward the destination state.
  `callback` | function | undefined | Function called when the view is in its final position. The callback will be called with `true` if the animation series completed on its own or `false` if it was cancelled.

#### State{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `center` | Coordinate | Center (in view projection coordinates).
  `projection` | Projection | Projection.
  `resolution` | number | Resolution.
  `nextCenter` | Coordinate | undefined | The next center during an animation series.
  `nextResolution` | number | undefined | The next resolution during an animation series.
  `nextRotation` | number | undefined | The next rotation during an animation series.
  `rotation` | number | Rotation.
  `zoom` | number | Zoom.

#### ViewObjectEventTypes{Types} {'change:center'} {'change:resolution'} {'change:rotation'}

#### ViewOptions{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `center` | Coordinate | undefined | The initial center for the view. If a user projection is not set, the coordinate system for the center is specified with the `projection` option. Layer sources will not be fetched if this is not set, but the center can be set later with `#setCenter`.
  `constrainRotation` | boolean | number (defaults to true) | Rotation constraint. `false` means no constraint. `true` means no constraint, but snap to zero near zero. A number constrains the rotation to that number of values. For example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.
  `enableRotation` | boolean (defaults to true) | Enable rotation. If `false`, a rotation constraint that always sets the rotation to zero is used. The `constrainRotation` option has no effect if `enableRotation` is `false`.
  `extent` | Extent | undefined | The extent that constrains the view, in other words, nothing outside of this extent can be visible on the map.
  `constrainOnlyCenter` | boolean (defaults to false) | If true, the extent constraint will only apply to the view center and not the whole extent.
  `smoothExtentConstraint` | boolean (defaults to true) | If true, the extent constraint will be applied smoothly, i.e. allow the view to go slightly outside of the given `extent`.
  `maxResolution` | number | undefined | The maximum resolution used to determine the resolution constraint. It is used together with `minResolution` (or `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way that the projection's validity extent fits in a 256x256 px tile. If the projection is Spherical Mercator (the default) then `maxResolution` defaults to `40075016.68557849 / 256 = 156543.03392804097`.
  `minResolution` | number | undefined | The minimum resolution used to determine the resolution constraint. It is used together with `maxResolution` (or `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29 zoom levels (with a factor of 2). If the projection is Spherical Mercator (the default) then `minResolution` defaults to `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.
  `maxZoom` | number (defaults to 28) | The maximum zoom level used to determine the resolution constraint. It is used together with `minZoom` (or `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also provided, it is given precedence over `maxZoom`.
  `minZoom` | number (defaults to 0) | The minimum zoom level used to determine the resolution constraint. It is used together with `maxZoom` (or `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also provided, it is given precedence over `minZoom`.
  `multiWorld` | boolean (defaults to false) | If `false` the view is constrained so only one world is visible, and you cannot pan off the edge. If `true` the map may show multiple worlds at low zoom levels. Only used if the `projection` is global. Note that if `extent` is also provided it is given precedence.
  `constrainResolution` | boolean (defaults to false) | If true, the view will always animate to the closest zoom level after an interaction; false means intermediary zoom levels are allowed.
  `smoothResolutionConstraint` | boolean (defaults to true) | If true, the resolution min/max values will be applied smoothly, i. e. allow the view to exceed slightly the given resolution or zoom bounds.
  `showFullExtent` | boolean (defaults to false) | Allow the view to be zoomed out to show the full configured extent. By default, when a view is configured with an extent, users will not be able to zoom out so the viewport exceeds the extent in either dimension. This means the full extent may not be visible if the viewport is taller or wider than the aspect ratio of the configured extent. If showFullExtent is true, the user will be able to zoom out so that the viewport exceeds the height or width of the configured extent, but not both, allowing the full extent to be shown.
  `projection` | ProjectionLike (defaults to 'EPSG:3857') | The projection. The default is Spherical Mercator.
  `resolution` | number | undefined | The initial resolution for the view. The units are `projection` units per pixel (e.g. meters per pixel). An alternative to setting this is to set `zoom`. Layer sources will not be fetched if neither this nor `zoom` are defined, but they can be set later with `#setZoom` or `#setResolution`.
  `resolutions` | Array.<number> | undefined | Resolutions that determine the zoom levels if specified. The index in the array corresponds to the zoom level, therefore the resolution values have to be in descending order. It also constrains the resolution by the minimum and maximum value. If set the `maxResolution`, `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.
  `rotation` | number (defaults to 0) | The initial rotation for the view in radians (positive rotation clockwise, 0 means North).
  `zoom` | number | undefined | Only used if `resolution` is not defined. Zoom level used to calculate the initial resolution for the view.
  `zoomFactor` | number (defaults to 2) | The zoom factor used to compute the corresponding resolution.
  `padding` | Array.<number> (defaults to [0, 0, 0, 0]) | Padding (in css pixels). If the map viewport is partially covered with other content (overlays) along its edges, this setting allows to shift the center of the viewport away from that content. The order of the values is top, right, bottom, left.

#### ViewStateLayerStateExtent{Object}

  Like `FrameState`, but just `viewState` and `extent`.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `viewState` | State | View state.
  `extent` | Extent | Extent (in user projection coordinates).
  `layerStatesArray` | Array<State> | undefined | Layer states.

#### ViewTransform()

View.js, line 2163