import type Extent from "../../geometry/Extent.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; export interface ViewStateProperties {} /** * Object that holds information about the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) state. * * @since 4.8 */ export default class ViewState extends JSONSupport { constructor(properties?: ViewStateProperties); /** * Represents the view's center point as an array of two numbers `[x, y]`. * * @see [MapView.center](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#center) */ readonly center: [ number, number ]; /** * The extent represents the visible portion of a map within the view as an instance of Extent. * * @see [MapView.extent](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#extent) */ readonly extent: Extent; /** * Represents the size of one pixel in map units. The value of `resolution` is the result of the division of the [extent](https://developers.arcgis.com/javascript/latest/references/core/views/2d/ViewState/#extent) width by the [size](https://developers.arcgis.com/javascript/latest/references/core/views/2d/ViewState/#size). * * @default 0 * @since 4.9 */ readonly resolution: number; /** * The clockwise rotation of due north in relation to the top of the view in degrees. * * @default 0 * @see [MapView.rotation](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#rotation) */ readonly rotation: number; /** * Represents the map scale at the center of the view. * * @default 0 * @see [MapView.scale](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#scale) */ readonly scale: number; /** * Represents the width and height of the view in pixels, e.g. `[width, height]`. * * @see [MapView.size](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#size) */ get size(): [ number, number ]; /** * Creates a deep clone of ViewState object. * * @returns A new instance of a ViewState object equal to the object used to call `.clone()`. */ clone(): ViewState; /** * Copies the properties from a given view state. * * @param state - The view state to copy the properties from. * @returns This ViewState instance. */ copy(state: ViewState): this; /** * Converts the x and y screen coordinates to map coordinates. * * @param out - The receiving array of the conversion. * @param x - The horizontal screen coordinate to convert. * @param y - The vertical screen coordinate to convert. * @returns The receiving array of the conversion. */ toMap(out: [ number, number ], x: number, y: number): [ number, number ]; /** * Converts the x and y map coordinates to screen coordinates. * * @param out - The receiving array of the conversion. * @param x - The horizontal screen coordinate to convert. * @param y - The vertical screen coordinate to convert. * @returns The receiving array of the conversion. */ toScreen(out: [ number, number ], x: number, y: number): [ number, number ]; /** * Converts the x and y map coordinates to screen coordinates. * This method is similar to [toScreen()](https://developers.arcgis.com/javascript/latest/references/core/views/2d/ViewState/#toScreen), without applying the view state rotation. * * @param out - The receiving array of the conversion. * @param x - The horizontal screen coordinate to convert. * @param y - The vertical screen coordinate to convert. * @returns The receiving array of the conversion. */ toScreenNoRotation(out: [ number, number ], x: number, y: number): [ number, number ]; }