diff --git a/openlayers/openlayers-tests.ts b/openlayers/openlayers-tests.ts
index 009273746..f60e45bd9 100644
--- a/openlayers/openlayers-tests.ts
+++ b/openlayers/openlayers-tests.ts
@@ -16,8 +16,11 @@ var featureLoader: ol.FeatureLoader;
var easingFunction: (t: number) => number;
// Type variables for OpenLayers
+var circle: ol.geom.Circle;
var color: ol.Color;
var coordinate: ol.Coordinate;
+var coordinatesArray: Array
;
+var coordinatesArrayDim2: Array>;
var extent: ol.Extent;
var boundingCoordinates: Array;
var size: ol.Size;
@@ -27,14 +30,28 @@ var feature: ol.Feature;
var featureArray: Array;
var graticule: ol.Graticule
var geometry: ol.geom.Geometry;
+var geometriesArray: Array;
var feature: ol.Feature;
var featureArray: Array;
var featureFormat: ol.format.Feature;
var geometry: ol.geom.Geometry;
+var geometryCollection: ol.geom.GeometryCollection;
+var geometryLayout: ol.geom.GeometryLayout;
+var geometryType: ol.geom.GeometryType;
+var linearRing: ol.geom.LinearRing;
+var lineString: ol.geom.LineString;
var loadingstrategy: ol.LoadingStrategy;
+var multiLineString: ol.geom.MultiLineString;
+var multiPoint: ol.geom.MultiPoint;
+var multiPolygon: ol.geom.MultiPolygon;
+var point: ol.geom.Point;
+var polygon: ol.geom.Polygon;
+var simpleGeometry: ol.geom.SimpleGeometry;
var tilegrid: ol.tilegrid.TileGrid;
var vector: ol.source.Vector;
var projection: ol.proj.Projection;
+var projectionLike: ol.proj.ProjectionLike;
+var transformFn: ol.TransformFunction;
//
// ol.Attribution
@@ -103,17 +120,172 @@ loadingstrategy = ol.loadingstrategy.all;
loadingstrategy = ol.loadingstrategy.bbox;
loadingstrategy = ol.loadingstrategy.tile(tilegrid);
+//
+//
+// ol.geom.Circle
+//
+booleanValue = circle.intersectsExtent(extent);
+circle = circle.transform(projectionLike, projectionLike);
+
//
//
// ol.geom.Geometry
//
-
var geometryResult: ol.geom.Geometry;
coordinate = geometryResult.getClosestPoint(coordinate);
geometryResult.getClosestPoint(coordinate, coordinate);
extent = geometryResult.getExtent();
geometryResult.getExtent(extent);
+//
+//
+// ol.geom.GeometryCollection
+//
+geometryCollection = new ol.geom.GeometryCollection(geometriesArray)
+geometryCollection = new ol.geom.GeometryCollection();
+voidValue = geometryCollection.applyTransform(transformFn);
+geometryCollection = geometryCollection.clone();
+geometriesArray = geometryCollection.getGeometries();
+geometryType = geometryCollection.getType();
+booleanValue = geometryCollection.intersectsExtent(extent);
+voidValue = geometryCollection.setGeometries(geometriesArray);
+
+//
+//
+// ol.geom.LinearRing
+//
+linearRing = new ol.geom.LinearRing(coordinatesArray);
+linearRing = new ol.geom.LinearRing(coordinatesArray, geometryLayout);
+linearRing = linearRing.clone();
+numberValue = linearRing.getArea();
+coordinatesArray = linearRing.getCoordinates();
+geometryType = linearRing.getType();
+voidValue = linearRing.setCoordinates(coordinatesArray);
+voidValue = linearRing.setCoordinates(coordinatesArray, geometryLayout);
+
+//
+//
+// ol.geom.LineString
+//
+lineString = new ol.geom.LineString(coordinatesArray);
+lineString = new ol.geom.LineString(coordinatesArray, geometryLayout);
+voidValue = lineString.appendCoordinate(coordinate);
+lineString = lineString.clone();
+coordinate = lineString.getCoordinateAtM(numberValue);
+coordinate = lineString.getCoordinateAtM(numberValue, booleanValue);
+coordinatesArray = lineString.getCoordinates();
+numberValue = lineString.getLength();
+geometryType = lineString.getType();
+booleanValue = lineString.intersectsExtent(extent);
+voidValue = lineString.setCoordinates(coordinatesArray);
+voidValue = lineString.setCoordinates(coordinatesArray, geometryLayout);
+
+//
+//
+// ol.geom.MultiLineString
+//
+var lineStringsArray: Array;
+
+multiLineString = new ol.geom.MultiLineString(coordinatesArrayDim2);
+multiLineString = new ol.geom.MultiLineString(coordinatesArrayDim2, geometryLayout);
+voidValue = multiLineString.appendLineString(lineString);
+multiLineString = multiLineString.clone();
+coordinate = multiLineString.getCoordinateAtM(numberValue);
+coordinate = multiLineString.getCoordinateAtM(numberValue, booleanValue);
+coordinate = multiLineString.getCoordinateAtM(numberValue, booleanValue, booleanValue);
+coordinatesArrayDim2 = multiLineString.getCoordinates();
+lineString = multiLineString.getLineString(numberValue);
+lineStringsArray = multiLineString.getLineStrings();
+geometryType = multiLineString.getType();
+booleanValue = multiLineString.intersectsExtent(extent);
+voidValue = multiLineString.setCoordinates(coordinatesArrayDim2);
+voidValue = multiLineString.setCoordinates(coordinatesArrayDim2, geometryLayout);
+
+//
+//
+// ol.geom.MultiPoint
+//
+var pointsArray: Array;
+
+multiPoint = new ol.geom.MultiPoint(coordinatesArray);
+multiPoint = new ol.geom.MultiPoint(coordinatesArray, geometryLayout);
+voidValue = multiPoint.appendPoint(point);
+multiPoint = multiPoint.clone();
+coordinatesArray = multiPoint.getCoordinates();
+point = multiPoint.getPoint(numberValue);
+pointsArray = multiPoint.getPoints();
+geometryType = multiPoint.getType();
+booleanValue = multiPoint.intersectsExtent(extent);
+voidValue = multiPoint.setCoordinates(coordinatesArray);
+voidValue = multiPoint.setCoordinates(coordinatesArray, geometryLayout);
+
+//
+//
+// ol.geom.MultiPolygon
+//
+var coordinatesArrayDim3: Array>>;
+var polygonsArray: Array;
+
+multiPolygon = new ol.geom.MultiPolygon(coordinatesArrayDim3);
+multiPolygon = new ol.geom.MultiPolygon(coordinatesArrayDim3, geometryLayout);
+voidValue = multiPolygon.appendPolygon(polygon);
+multiPolygon = multiPolygon.clone();
+numberValue = multiPolygon.getArea();
+coordinatesArrayDim3 = multiPolygon.getCoordinates();
+coordinatesArrayDim3 = multiPolygon.getCoordinates(booleanValue);
+multiPoint = multiPolygon.getInteriorPoints();
+polygon = multiPolygon.getPolygon(numberValue);
+polygonsArray = multiPolygon.getPolygons();
+geometryType = multiPolygon.getType();
+booleanValue = multiPolygon.intersectsExtent(extent);
+voidValue = multiPolygon.setCoordinates(coordinatesArrayDim3);
+voidValue = multiPolygon.setCoordinates(coordinatesArrayDim3, geometryLayout);
+
+//
+//
+// ol.geom.Point
+//
+point = new ol.geom.Point(coordinate);
+point = new ol.geom.Point(coordinate, geometryLayout);
+point = point.clone();
+coordinate = point.getCoordinates();
+geometryType = point.getType();
+booleanValue = point.intersectsExtent(extent);
+voidValue = point.setCoordinates(coordinate);
+voidValue = point.setCoordinates(coordinate, geometryLayout);
+
+//
+//
+// ol.geom.Polygon
+//
+var localSphere: ol.Sphere;
+var linearRingsArray: Array;
+
+polygon = new ol.geom.Polygon(coordinatesArrayDim2);
+polygon = new ol.geom.Polygon(coordinatesArrayDim2, geometryLayout);
+polygon = ol.geom.Polygon.circular(localSphere, coordinate, numberValue);
+polygon = ol.geom.Polygon.circular(localSphere, coordinate, numberValue, numberValue);
+voidValue = polygon.appendLinearRing(linearRing);
+polygon = polygon.clone();
+numberValue = polygon.getArea();
+coordinatesArrayDim2 = polygon.getCoordinates();
+coordinatesArrayDim2 = polygon.getCoordinates(booleanValue);
+point = polygon.getInteriorPoint();
+linearRing = polygon.getLinearRing(numberValue);
+linearRingsArray = polygon.getLinearRings();
+geometryType = polygon.getType();
+booleanValue = polygon.intersectsExtent(extent);
+
+//
+//
+// ol.geom.SimpleGeometry
+//
+simpleGeometry.applyTransform(transformFn);
+coordinate = simpleGeometry.getFirstCoordinate();
+coordinate = simpleGeometry.getLastCoordinate();
+geometryLayout = simpleGeometry.getLayout();
+voidValue = simpleGeometry.translate(numberValue, numberValue);
+
//
// ol.source
//
diff --git a/openlayers/openlayers.d.ts b/openlayers/openlayers.d.ts
index 5aba19b54..89680ac91 100644
--- a/openlayers/openlayers.d.ts
+++ b/openlayers/openlayers.d.ts
@@ -2733,12 +2733,41 @@ declare module ol {
}
module geom {
-
+
// Type definitions
interface GeometryLayout extends String { }
interface GeometryType extends String { }
+
+ /**
+ * Abstract base class; only used for creating subclasses; do not instantiate
+ * in apps, as cannot be rendered.
+ */
+ class Circle extends ol.geom.SimpleGeometry {
- class Circle {
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Transform each coordinate of the circle from one coordinate reference system
+ * to another. The geometry is modified in place.
+ * If you do not want the geometry modified in place, first clone() it and
+ * then use this function on the clone.
+ *
+ * Internally a circle is currently represented by two points: the center of
+ * the circle `[cx, cy]`, and the point to the right of the circle
+ * `[cx + r, cy]`. This `transform` function just transforms these two points.
+ * So the resulting geometry is also a circle, and that circle does not
+ * correspond to the shape that would be obtained by transforming every point
+ * of the original circle.
+ * @param source The current projection. Can be a string identifier or a {@link ol.proj.Projection} object.
+ * @param destination The desired projection. Can be a string identifier or a {@link ol.proj.Projection} object.
+ * @returns This geometry. Note that original geometry is modified in place.
+ */
+ transform(source: ol.proj.ProjectionLike, destination: ol.proj.ProjectionLike): ol.geom.Circle;
}
/**
@@ -2762,35 +2791,590 @@ declare module ol {
getExtent(extent?: ol.Extent): ol.Extent;
}
- class GeometryCollection {
+ /**
+ * An array of ol.geom.Geometry objects.
+ */
+ class GeometryCollection extends ol.geom.Geometry {
+
+ /**
+ * constructor
+ * @param geometries Geometries.
+ */
+ constructor(geometries?: Array);
+
+ /**
+ * Apply a transform function to each coordinate of the geometry. The geometry is modified in place.
+ * If you do not want the geometry modified in place, first clone() it and then use this function on the clone.
+ * @param transformFn TransformFunction
+ */
+ applyTransform(transformFn: ol.TransformFunction): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.GeometryCollection;
+
+ /**
+ * Return the geometries that make up this geometry collection.
+ * @returns Geometries.
+ */
+ getGeometries(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the geometries that make up this geometry collection.
+ * @param geometries Geometries.
+ */
+ setGeometries(geometries: Array): void;
+
}
- class LinearRing {
+ /**
+ * Linear ring geometry. Only used as part of polygon; cannot be rendered
+ * on its own.
+ */
+ class LinearRing extends SimpleGeometry {
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.LinearRing;
+
+ /**
+ * Return the area of the linear ring on projected plane.
+ * @returns Area (on projected plane).
+ */
+ getArea(): number;
+
+ /**
+ * Return the coordinates of the linear ring.
+ * @returns Coordinates.
+ */
+ getCoordinates(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * @Set the coordinates of the linear ring
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array, layout?: any): void;
+
}
- class LineString {
- new(): LineString;
+ /**
+ * Linestring geometry.
+ */
+ class LineString extends ol.geom.SimpleGeometry {
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Append the passed coordinate to the coordinates of the linestring.
+ * @param coordinate Coordinate.
+ */
+ appendCoordinate(coordinate: ol.Coordinate): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.LineString;
+
+ /**
+ * Returns the coordinate at `m` using linear interpolation, or `null` if no
+ * such coordinate exists.
+ *
+ * `extrapolate` controls extrapolation beyond the range of Ms in the
+ * MultiLineString. If `extrapolate` is `true` then Ms less than the first
+ * M will return the first coordinate and Ms greater than the last M will
+ * return the last coordinate.
+ *
+ * @param m M.
+ * @param extrapolate Extrapolate. Default is `false`.
+ * @returns Coordinate.
+ */
+ getCoordinateAtM(m: number, extrapolate?: boolean): ol.Coordinate;
+
+ /**
+ * Return the coordinates of the linestring.
+ * @returns Coordinates.
+ */
+ getCoordinates(): Array;
+
+ /**
+ * Return the length of the linestring on projected plane.
+ * @returns Length (on projected plane).
+ */
+ getLength(): number;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the coordinates of the linestring.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array, layout?: ol.geom.GeometryLayout) : void;
}
- class MultiLineString {
+ /**
+ * Multi-linestring geometry.
+ */
+ class MultiLineString extends ol.geom.SimpleGeometry {
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array>, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Append the passed linestring to the multilinestring.
+ * @param lineString LineString.
+ */
+ appendLineString(lineString: ol.geom.LineString): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.MultiLineString;
+
+ /**
+ * Returns the coordinate at `m` using linear interpolation, or `null` if no
+ * such coordinate exists.
+ *
+ * `extrapolate` controls extrapolation beyond the range of Ms in the
+ * MultiLineString. If `extrapolate` is `true` then Ms less than the first
+ * M will return the first coordinate and Ms greater than the last M will
+ * return the last coordinate.
+ *
+ * `interpolate` controls interpolation between consecutive LineStrings
+ * within the MultiLineString. If `interpolate` is `true` the coordinates
+ * will be linearly interpolated between the last coordinate of one LineString
+ * and the first coordinate of the next LineString. If `interpolate` is
+ * `false` then the function will return `null` for Ms falling between
+ * LineStrings.
+ *
+ * @param m M.
+ * @param extrapolate Extrapolate. Default is `false`.
+ * @param interpolate Interpolate. Default is `false`.
+ * @returns Coordinate.
+ */
+ getCoordinateAtM(m: number, extrapolate?: boolean, interpolate?: boolean): ol.Coordinate;
+
+ /**
+ * Return the coordinates of the multilinestring.
+ * @returns Coordinates.
+ */
+ getCoordinates(): Array>;
+
+ /**
+ * Return the linestring at the specified index.
+ * @param index Index.
+ * @returns LineString.
+ */
+ getLineString(index: number): ol.geom.LineString;
+
+ /**
+ * Return the linestrings of this multilinestring.
+ * @returns LineStrings.
+ */
+ getLineStrings(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the coordinates of the multilinestring.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array>, layout?: ol.geom.GeometryLayout): void;
}
- class MultiPoint {
+ /**
+ * Multi-point geometry.
+ */
+ class MultiPoint extends ol.geom.SimpleGeometry {
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Append the passed point to this multipoint.
+ * @param {ol.geom.Point} point Point.
+ */
+ appendPoint(point: ol.geom.Point): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.MultiPoint;
+
+ /**
+ * Return the coordinates of the multipoint.
+ * @returns Coordinates.
+ */
+ getCoordinates(): Array;
+
+ /**
+ * Return the point at the specified index.
+ * @param index Index.
+ * @returns Point.
+ */
+ getPoint(index: number): ol.geom.Point;
+
+ /**
+ * Return the points of this multipoint.
+ * @returns Points.
+ */
+ getPoints(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the coordinates of the multipoint.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array, layout?: ol.geom.GeometryLayout): void;
}
+
+ /**
+ * Multi-polygon geometry.
+ */
+ class MultiPolygon extends ol.geom.SimpleGeometry {
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array>>, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Append the passed polygon to this multipolygon.
+ * @param polygon Polygon.
+ */
+ appendPolygon(polygon: ol.geom.Polygon): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.MultiPolygon;
+
+ /**
+ * Return the area of the multipolygon on projected plane.
+ * @returns Area (on projected plane).
+ */
+ getArea(): number;
+
+ /**
+ * Get the coordinate array for this geometry. This array has the structure
+ * of a GeoJSON coordinate array for multi-polygons.
+ *
+ * @param 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.
+ * @returns Coordinates.
+ */
+ getCoordinates(right?: boolean): Array>>;
+
+ /**
+ * Return the interior points as {@link ol.geom.MultiPoint multipoint}.
+ * @returns Interior points.
+ */
+ getInteriorPoints(): ol.geom.MultiPoint;
+
+ /**
+ * Return the polygon at the specified index.
+ * @param index Index.
+ * @returns Polygon.
+ */
+ getPolygon(index: number): ol.geom.Polygon;
+
+ /**
+ * Return the polygons of this multipolygon.
+ * @returns Polygons.
+ */
+ getPolygons(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
- class MultiPolygon {
+ /**
+ * Set the coordinates of the multipolygon.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array>>, layout?: ol.geom.GeometryLayout): void;
}
+ /**
+ * Point geometry.
+ */
class Point extends SimpleGeometry {
- constructor(coordinates: ol.Coordinate, layout?: geom.GeometryLayout);
- getCoordinates(): ol.Coordinate;
- setCoordinates(coordinates: ol.Coordinate, opt?: geom.GeometryLayout): void;
+
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: ol.Coordinate, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.Point;
+
+ /**
+ * Return the coordinate of the point.
+ * @returns Coordinates.
+ */
+ getCoordinates(): ol.Coordinate;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the coordinate of the point.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: ol.Coordinate, layout?: ol.geom.GeometryLayout): void;
}
- class Polygon {
- }
+ /**
+ * Polygon geometry.
+ */
+ class Polygon extends SimpleGeometry {
- class SimpleGeometry extends Geometry {
+ /**
+ * constructor
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ constructor(coordinates: Array>, layout?: ol.geom.GeometryLayout);
+
+ /**
+ * Create an approximation of a circle on the surface of a sphere.
+ * @param sphere The sphere.
+ * @param center Center (`[lon, lat]` in degrees).
+ * @param radius The great-circle distance from the center to the polygon vertices.
+ * @param n Optional number of vertices for the resulting polygon. Default is `32`.
+ * @returns The "circular" polygon.
+ */
+ static circular(sphere: ol.Sphere, center: ol.Coordinate, radius: number, n?: number): ol.geom.Polygon;
+
+ /**
+ * Append the passed linear ring to this polygon.
+ * @param linearRing Linear ring.
+ */
+ appendLinearRing(linearRing: ol.geom.LinearRing): void;
+
+ /**
+ * Make a complete copy of the geometry.
+ * @returns Clone.
+ */
+ clone(): ol.geom.Polygon;
+
+ /**
+ * Return the area of the polygon on projected plane.
+ * @returns Area (on projected plane).
+ */
+ getArea(): number;
+
+ /**
+ * Get the coordinate array for this geometry. This array has the structure
+ * of a GeoJSON coordinate array for polygons.
+ *
+ * @param 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.
+ * @returns Coordinates.
+ */
+ getCoordinates(right?: boolean): Array>;
+
+ /**
+ * Return an interior point of the polygon.
+ * @returns Interior point.
+ */
+ getInteriorPoint(): ol.geom.Point;
+
+ /**
+ * 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 index Index.
+ * @returns Linear ring.
+ */
+ getLinearRing(index: number): ol.geom.LinearRing;
+
+ /**
+ * Return the linear rings of the polygon.
+ * @returns Linear rings.
+ */
+ getLinearRings(): Array;
+
+ /**
+ * Get the type of this geometry.
+ * @returns Geometry type
+ */
+ getType(): ol.geom.GeometryType;
+
+ /**
+ * Test if the geometry and the passed extent intersect.
+ * @param extent Extent
+ * @returns true if the geometry and the extent intersect.
+ */
+ intersectsExtent(extent: ol.Extent): boolean;
+
+ /**
+ * Set the coordinates of the polygon.
+ * @param coordinates Coordinates.
+ * @param layout Layout.
+ */
+ setCoordinates(coordinates: Array>, layout?: ol.geom.GeometryLayout): void;
+ }
+ /**
+ * Abstract base class; only used for creating subclasses; do not instantiate
+ * in apps, as cannot be rendered.
+ */
+ class SimpleGeometry extends ol.geom.Geometry {
+
+ /**
+ * Apply a transform function to each coordinate of the geometry. The geometry is modified in place.
+ * If you do not want the geometry modified in place, first clone() it and then use this function on the clone.
+ * @param transformFn TransformFunction
+ */
+ applyTransform(transformFn: ol.TransformFunction): void;
+
+ /**
+ * Return the first coordinate of the geometry.
+ * @returns First coordinate.
+ */
+ getFirstCoordinate(): ol.Coordinate;
+
+ /**
+ * Return the last coordinate of the geometry.
+ * @returns Last point.
+ */
+ getLastCoordinate(): ol.Coordinate;
+
+ /**
+ * Return the {@link ol.geom.GeometryLayout layout} of the geometry.
+ * @returns Layout.
+ */
+ getLayout(): ol.geom.GeometryLayout;
+
+ /**
+ * Translate the geometry. This modifies the geometry coordinates in place.
+ * If instead you want a new geometry, first clone() this geometry.
+ * @param deltaX Delta X
+ * @param deltaY Delta Y
+ */
+ translate(deltaX: number, deltaY: number): void;
}
}