package.geom.Polygon.d.ts Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ol Show documentation
Show all versions of ol Show documentation
OpenLayers mapping library
The newest version!
/**
* Create an approximation of a circle on the surface of a sphere.
* @param {import("../coordinate.js").Coordinate} center Center (`[lon, lat]` in degrees).
* @param {number} radius The great-circle distance from the center to
* the polygon vertices in meters.
* @param {number} [n] Optional number of vertices for the resulting
* polygon. Default is `32`.
* @param {number} [sphereRadius] Optional radius for the sphere (defaults to
* the Earth's mean radius using the WGS84 ellipsoid).
* @return {Polygon} The "circular" polygon.
* @api
*/
export function circular(center: import("../coordinate.js").Coordinate, radius: number, n?: number | undefined, sphereRadius?: number | undefined): Polygon;
/**
* Create a polygon from an extent. The layout used is `XY`.
* @param {import("../extent.js").Extent} extent The extent.
* @return {Polygon} The polygon.
* @api
*/
export function fromExtent(extent: import("../extent.js").Extent): Polygon;
/**
* Create a regular polygon from a circle.
* @param {import("./Circle.js").default} circle Circle geometry.
* @param {number} [sides] Number of sides of the polygon. Default is 32.
* @param {number} [angle] Start angle for the first vertex of the polygon in
* counter-clockwise radians. 0 means East. Default is 0.
* @return {Polygon} Polygon geometry.
* @api
*/
export function fromCircle(circle: import("./Circle.js").default, sides?: number | undefined, angle?: number | undefined): Polygon;
/**
* Modify the coordinates of a polygon to make it a regular polygon.
* @param {Polygon} polygon Polygon geometry.
* @param {import("../coordinate.js").Coordinate} center Center of the regular polygon.
* @param {number} radius Radius of the regular polygon.
* @param {number} [angle] Start angle for the first vertex of the polygon in
* counter-clockwise radians. 0 means East. Default is 0.
*/
export function makeRegular(polygon: Polygon, center: import("../coordinate.js").Coordinate, radius: number, angle?: number | undefined): void;
export default Polygon;
/**
* @classdesc
* Polygon geometry.
*
* @api
*/
declare class Polygon extends SimpleGeometry {
/**
* @param {!Array>|!Array} coordinates
* Array of linear rings that define the polygon. The first linear ring of the
* array defines the outer-boundary or surface of the polygon. Each subsequent
* linear ring defines a hole in the surface of the polygon. A linear ring is
* an array of vertices' coordinates where the first coordinate and the last are
* equivalent. (For internal use, flat coordinates in combination with
* `layout` and `ends` are also accepted.)
* @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
* @param {Array} [ends] Ends (for internal use with flat coordinates).
*/
constructor(coordinates: Array> | Array, layout?: import("./Geometry.js").GeometryLayout | undefined, ends?: number[] | undefined);
/**
* @type {Array}
* @private
*/
private ends_;
/**
* @private
* @type {number}
*/
private flatInteriorPointRevision_;
/**
* @private
* @type {import("../coordinate.js").Coordinate|null}
*/
private flatInteriorPoint_;
/**
* @private
* @type {number}
*/
private maxDelta_;
/**
* @private
* @type {number}
*/
private maxDeltaRevision_;
/**
* @private
* @type {number}
*/
private orientedRevision_;
/**
* @private
* @type {Array|null}
*/
private orientedFlatCoordinates_;
/**
* Append the passed linear ring to this polygon.
* @param {LinearRing} linearRing Linear ring.
* @api
*/
appendLinearRing(linearRing: LinearRing): void;
/**
* Make a complete copy of the geometry.
* @return {!Polygon} Clone.
* @api
* @override
*/
override clone(): Polygon;
/**
* Return the area of the polygon on projected plane.
* @return {number} Area (on projected plane).
* @api
*/
getArea(): number;
/**
* Get the coordinate array for this geometry. This array has the structure
* of a GeoJSON coordinate array for polygons.
*
* @param {boolean} [right] Orient coordinates according to the right-hand
* rule (counter-clockwise for exterior and clockwise for interior rings).
* If `false`, coordinates will be oriented according to the left-hand rule
* (clockwise for exterior and counter-clockwise for interior rings).
* By default, coordinate orientation will depend on how the geometry was
* constructed.
* @return {Array>} Coordinates.
* @api
* @override
*/
override getCoordinates(right?: boolean | undefined): Array>;
/**
* @return {Array} Ends.
*/
getEnds(): Array;
/**
* @return {Array} Interior point.
*/
getFlatInteriorPoint(): Array;
/**
* Return an interior point of the polygon.
* @return {Point} Interior point as XYM coordinate, where M is the
* length of the horizontal intersection that the point belongs to.
* @api
*/
getInteriorPoint(): Point;
/**
* Return the number of rings of the polygon, this includes the exterior
* ring and any interior rings.
*
* @return {number} Number of rings.
* @api
*/
getLinearRingCount(): number;
/**
* Return the Nth linear ring of the polygon geometry. Return `null` if the
* given index is out of range.
* The exterior linear ring is available at index `0` and the interior rings
* at index `1` and beyond.
*
* @param {number} index Index.
* @return {LinearRing|null} Linear ring.
* @api
*/
getLinearRing(index: number): LinearRing | null;
/**
* Return the linear rings of the polygon.
* @return {Array} Linear rings.
* @api
*/
getLinearRings(): Array;
/**
* @return {Array} Oriented flat coordinates.
*/
getOrientedFlatCoordinates(): Array;
/**
* @param {number} squaredTolerance Squared tolerance.
* @return {Polygon} Simplified Polygon.
* @protected
* @override
*/
protected override getSimplifiedGeometryInternal(squaredTolerance: number): Polygon;
/**
* Set the coordinates of the polygon.
* @param {!Array>} coordinates Coordinates.
* @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
* @api
* @override
*/
override setCoordinates(coordinates: Array>, layout?: import("./Geometry.js").GeometryLayout | undefined): void;
}
import SimpleGeometry from './SimpleGeometry.js';
import LinearRing from './LinearRing.js';
import Point from './Point.js';
//# sourceMappingURL=Polygon.d.ts.map