GeometryEngine QML Type
Provides a set of methods to perform geometric operations on geometry instances. More...
Import Statement:  import Esri.ArcGISRuntime 
Since:  Esri.ArcGISRuntime 100.0 
Inherits: 
Methods
 double area(Geometry geometry)
 double areaGeodetic(Geometry geometry, AreaUnit unit, GeodeticCurveType curveType)
 list<Geometry> autoComplete(list<Geometry> existingBoundaries, list<Geometry> newBoundaries)
 Geometry boundary(Geometry geometry)
 Polygon buffer(Geometry geometry, double distance)
 Polygon bufferGeodetic(Geometry geometry, double distance, LinearUnit unit, double maxDeviation, GeodeticCurveType curveType)
 list<Polygon> bufferGeodeticOfGeometries(list<Geometry> geometries, list<double> distances, LinearUnit unit, double maxDeviation, Enums::GeodeticCurveType curveType, bool unionResult)
 list<Polygon> bufferOfGeometries(list<Geometry> geometries, list<double> distances, bool unionResult)
 Geometry clip(Geometry geometry, Envelope envelope)
 Geometry combineExtents(Geometry geometry1, Geometry geometry2)
 Geometry combineExtentsOfGeometries(list<Geometry> geometries)
 bool contains(Geometry geometry1, Geometry geometry2)
 Geometry convexHull(Geometry geometry)
 list<Geometry> convexHullOfGeometries(list<Geometry> geometries, bool unionResult)
 Point createPointAlong(Polyline polyline, double distance)
 bool crosses(Geometry geometry1, Geometry geometry2)
 list<Geometry> cut(Geometry geometry, Polyline cutter)
 Geometry densify(Geometry geometry, double maxSegmentLength)
 Geometry densifyGeodetic(Geometry geometry, double maxSegmentLength, LinearUnit lengthUnit, GeodeticCurveType curveType)
 Geometry difference(Geometry geometry1, Geometry geometry2)
 bool disjoint(Geometry geometry1, Geometry geometry2)
 double distance(Geometry geometry1, Geometry geometry2)
 GeodeticDistanceResult distanceGeodetic(Point point1, Point point2, LinearUnit distanceUnit, AngularUnit azimuthUnit, GeodeticCurveType curveType)
 Geometry ellipseGeodesic(GeodesicEllipseParameters parameters)
 bool equals(Geometry geometry1, Geometry geometry2)
 Polyline extend(Polyline polyline, Polyline extender, GeometryExtendOptions extendOptions)
 double fractionAlong(Polyline line, Point point, double tolerance)
 Geometry generalize(Geometry geometry, double maxDeviation, bool removeDegenerateParts)
 Geometry intersection(Geometry geometry1, Geometry geometry2)
 list<Geometry> intersections(Geometry geometry1, Geometry geometry2)
 bool intersects(Geometry geometry1, Geometry geometry2)
 bool isSimple(Geometry geometry)
 Point labelPoint(Polygon polygon)
 double length(Geometry geometry)
 double lengthGeodetic(Geometry geometry, LinearUnit lengthUnit, GeodeticCurveType curveType)
 list<Point> moveGeodetic(list<Point> pointCollection, double distance, LinearUnit distanceUnit, double azimuth, AngularUnit azimuthUnit, GeodeticCurveType curveType)
 ProximityResult nearestCoordinate(Geometry geometry, Point point)
 ProximityResult nearestCoordinateGeodetic(Geometry geometry, Point point, double maxDeviation, LinearUnit deviationUnit)
 ProximityResult nearestVertex(Geometry geometry, Point point)
 Geometry normalizeCentralMeridian(Geometry geometry)
 Geometry offset(Geometry geometry, double distance, GeometryOffsetType offsetType, double bevelRatio, double flattenError)
 bool overlaps(Geometry geometry1, Geometry geometry2)
 Geometry project(Geometry geometry, SpatialReference spatialReference)
 Geometry projectWithDatumTransformation(Geometry geometry, SpatialReference spatialReference, DatumTransformation datumTransformation)
 bool relate(Geometry geometry1, Geometry geometry2, string relation)
 Geometry removeM(Geometry geometry)
 Geometry removeZ(Geometry geometry)
 Geometry removeZAndM(Geometry geometry)
 Multipart reshape(Multipart geometry, Polyline reshaper)
 Geometry sectorGeodesic(GeodesicSectorParameters parameters)
 Geometry setM(Geometry geometry, double m)
 Geometry setZ(Geometry geometry, double z)
 Geometry setZAndM(Geometry geometry, double z, double m)
 Geometry simplify(Geometry geometry)
 Geometry symmetricDifference(Geometry geometry1, Geometry geometry2)
 bool touches(Geometry geometry1, Geometry geometry2)
 Geometry unionOf(Geometry geometry1, Geometry geometry2)
 Geometry unionOfGeometries(list<Geometry> geometries)
 bool within(Geometry geometry1, Geometry geometry2)
Detailed Description
Performs geometric operations such as spatial relationship tests, reprojections, shape manipulations, and topological query and analysis operations. Capabilities include:
 Create new geometries from others with buffer(Geometry, double), clip(Geometry, Envelope) and union(Geometry, Geometry).
 Test spatial relationships between geometries such as intersects(Geometry, Geometry) and contains(Geometry, Geometry).
 Find the nearestCoordinate(Geometry, Point) or nearestVertex(Geometry, Point) between geometries.
 Reproject a geometry to another SpatialReference using project(Geometry, SpatialReference).
 Calculate area and length using area(Geometry) and length(Geometry), or the geodetic equivalents (bufferGeodetic(Geometry, double, LinearUnit, double, GeodeticCurveType) and lengthGeodetic(Geometry, LinearUnit, GeodeticCurveType)) that account for the curvature of the earth.
GeometryEngine generally operates in two dimensions; operations do not account for zvalues unless documented as such for a specific method (for example project(Geometry, SpatialReference) transforms zvalues in some cases).
Geodetic methods are better suited to data that have a geographic spatial reference, especially for largearea, smallscale use, while planar methods are suitable to data that have a projected coordinate system. Geodetic methods indicate this in the name, for example GeometryEngine::bufferGeodetic(Geometry, double, LinearUnit, double, GeodeticCurveType).
Note: You cannot declare or create a component of this type in QML code.
var result3 = GeometryEngine.nearestVertex(polyline, point);
Method Documentation
double area(Geometry geometry) 
Calculates the area of the given geometry.
Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference. Ensure that you understand the potential for error with the geometry's spatial reference. If you need to calculate more accurate results, consider using a different spatial reference, or using the geodetic equivalent, GeometryEngine::areaGeodetic(geometry, unit, curveType). See Introduction to Spatial References for more information.
 geometry  The input geometry.
The geodetic area of the input geometry.
Returns the calculated geodesic area in the requested unit.
 geometry  The input geometry.
 unit  The unit of measurement for the output value. If null, then meters squared are assumed.
 curveType  The
Enums.GeodeticCurveType
to use.
Supports true curves, calculating the result by densifying curves. This method returns 1.0
when the input geometry is empty.
See also Enums.GeodeticCurveType.
Returns polygons that were created by filling the closed gaps between polygons using polygon boundaries (existingBoundaries) and polylines (newBoundaries) as the boundary for the new polygons.
 existingBoundaries  The polygons.
 newBoundaries  The polylines.
The new polygons are created in the closed empty areas bounded by the edges of the existing polygon boundaries and the new boundary polylines. The newly created polygons do not overlap any existing polygons or polylines, and the boundary of a new polygon must contain at least one edge from the polylines. Only polygons that intersect the input polylines participate in the operation, so it makes sense to prefilter the input accordingly.
The geometries in existing boundaries must all have an area, i.e. be polygons or envelopes.
The geometries in new boundaries must all be polylines.
The geometries in existing boundaries and new boundaries must have consistent spatial references.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns the boundary portion of a geometry.
Returns a geometry representing the boundary of the input geometry.
 The boundary of a point is an empty geometry. Points have no boundary.
 The boundary of a polygon is a polyline describing its outer and inner rings.
 The boundary of a polyline are its end points.
Supports true curves.
Returns a geometry object that represents a buffer relative to the given geometry.
 geometry  The input geometry.
 distance  The distance to buffer the input geometry.
Calculates the buffer with simple 2D distances. The distance is expressed in the same unit of measurement as the spatial reference of geometry.
Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference. Ensure that you understand the potential for error with the geometry's spatial reference. If you need to calculate more accurate results, consider using a different spatial reference, or using the geodetic equivalent, GeometryEngine::bufferGeodetic. See Introduction to Spatial References for more information.
Supports true curves as input, producing a densified curve as output where applicable.
Polygon bufferGeodetic(Geometry geometry, double distance, LinearUnit unit, double maxDeviation, GeodeticCurveType curveType) 
Returns a geodetic buffer polygon of a given geometry.
 geometry  The input geometry.
 distance  The distance to buffer the input geometry.
 unit  The unit of measurement for the input distance.
 maxDeviation  The maximum deviation between points.
 curveType  The Enums.GeodeticCurveType to use.
Geodesic buffers account for the actual shape of the Earth. Distances are calculated between points on a curved surface (the geoid) as opposed to points on a flat surface (the Cartesian plane). Negative distance can be used to create a buffer inside a Polygon or an Envelope. Using a negative buffer distance shrinks geometry's boundary by the distance specified.
Note that if the negative buffer distance is large enough, the geometry may collapse to an empty polygon.
Using a true curve geometry as input is not supported by this method and emits the errorChanged
signal with ErrorTypeCommonNotImplemented.
See also Enums.GeodeticCurveType.

Buffers all geometries in the list by the corresponding geodetic distance.
Returns a collection of polygon geometries that represent a geodesic buffer at the desired distance(s) relative to the given geometries. If unionResult is true
, the resulting collection contains a single polygon. If geometries is empty, returns an empty list. Returns null on error.
 geometries  A list of geometries to buffer.
 distances  The distance to buffer each geometry, expressed as a list of double values. If the size of the distances list is less than the number of geometries, the last distance value is used for the rest of geometries.
 unit  The unit of measurement for the input distance.
 maxDeviation  The maximum deviation between points.
 curveType  The Enums.GeodeticCurveType to use.
 unionResult  Whether to union the resulting geometries. If
true
, a single polygon that buffers all the geometries is returned, else one buffer polygon for each in the given collection is returned.
Geodesic buffers account for the actual shape of the Earth. Distances are calculated between points on a curved surface (the geoid) as opposed to points on a flat surface (the Cartesian plane). Negative distance can be used to create buffers inside polygons.
Using a negative buffer distance shrinks a polygon's boundaries by the distance specified. Note that if the negative buffer distance is large enough, a polygon may collapse to empty geometries.
Using a true curve geometry as input is not supported by this method and emits the errorOccurred
signal with ErrorTypeCommonNotImplemented
This method was introduced in Esri.ArcGISRuntime 100.1.
See also Enums.GeodeticCurveType.
Creates and returns a collection of polygons representing buffers at the defined distance(s) relative to the input geometries.
The geometries must have the same spatial reference. Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference. Ensure that you understand the potential for error with the geometry's spatial reference. If you need to calculate more accurate results, consider using a different spatial reference, or using the geodetic equivalent, GeometryEngine::bufferGeodetic(). See Introduction to Spatial References for more information.
If unionResult is true
, the output collection contains a single result. If geometries is empty, an empty list is returned. Returns null
on error.
 geometries  A list of geometries to buffer.
 distances  The distance to buffer each geometry, expressed as a list of double values. If the size of the distances list is less than the number of geometries, the last distance value is used for the rest of geometries.
 unionResult  Whether to union the resulting geometries. If
true
, a single polygon that buffers all the geometries is returned, else one buffer polygon for each in the given collection is returned.
Supports true curves as input, producing a densified curve as output where applicable.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns the portion of a geometry that intersects an envelope.
Supports true curves.
Returns an Envelope representing the minimum extent that encloses both geometry1 and geometry2.
 geometry1  The first geometry of the relation.
 geometry2  The second geometry of the relation.
The given geometries must be of the same spatial references.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns an Envelope with the maximum extent of all geometries in the list.
The given geometries must be of the same spatial references.
This method was introduced in Esri.ArcGISRuntime 100.1.
Tests if geometry1 contains geometry2.
 geometry1 The first geometry.
 geometry2 The second geometry.
The first geometry contains the second if the second lies completely within the first. Returns true
if geometry1 contains geometry2, false
otherwise.
Supports true curves.
Returns the convex hull of a geometry.
A convex hull is a geometry whose vertices are the smallest set of vertices needed to surround the input geometry. One way to visualize this is as a rubber band stretched around a polygon that has some concave sides.
Returns the convex hull of each of the geometries in the list.
If unionResult is true
, a single geometry that encloses all the geometries is returned, otherwise one enclosing geometry for each in the given collection is returned.
A convex hull is a geometry whose vertices are the smallest set of vertices needed to surround the input geometries. One way to visualize this is as a rubber band stretched around a polygon that has some concave sides.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns the point at the given distance along the line, or null if an error occurred.
If distance is less than or equal to zero, the point returned is coincident with the start of the line. If distance is greater than or equal to the line's length, the point returned is coincident with the end of the line. If the line has multiple parts, and the distance falls exactly on a boundary between two parts the returned point is coincident with either the end of one part or the start of the next, which is indeterminate.
 polyline  The polyline from which point is created.
 distance  The distance along the line of the point to return, in the line's units.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.2.
Returns whether geometry1 and geometry2 cross.
Geometries cross when they have some but not all of their interiors in common, and when the geometry representing their intersection has a dimension that is less that at least one of the input geometries.
An example of this is when a polyline's interior (the portion between the end points) intersects a polygon's interior (the part within the boundary ring) but some part of the polyline's interior is outside the polygon. Therefore, some of the interior of the polyline is not in common with the polygon's interior, and the intersection geometry is a polyline with a dimension 1. A polygon's dimension is 2.
Supports true curves.
Returns a list of cut geometries.
 geometry  The input geometry.
 cutter  The polyline that used to divide the input geometry into pieces where it crosses the cutter.
The cutter and geometry's spatial references must match. If there were no cuts then an empty list is returned.
This method was introduced in Esri.ArcGISRuntime 100.1.
Densifies the input geometry by inserting additional vertices along the geometry at an interval defined by maxSegmentLength.
 geometry  A Polyline or Polygon geometry.
 maxSegmentLength  The maximum distance between vertices when the input geometry is densified, in the given linear units. The linear unit is assumed to be that of the input geometry's spatial reference (decimal degrees for a geometry with a geographic spatial reference, meters for geometry with a Mercator spatial reference, and so on). Use SpatialReference::unit to determine the unit used by a specific spatial reference.
Additional vertices are not inserted on segments of the input {Esri::ArcGISRuntime::Envelope} {Envelope}, Polygon, or Polyline that are shorter than maxSegmentLength. Additional vertices are not inserted on segments of the input Polyline or Polygon that are shorter than maxSegmentLength.
Supports true curves as input, producing a densified curve as output where applicable.
Geometry densifyGeodetic(Geometry geometry, double maxSegmentLength, LinearUnit lengthUnit, GeodeticCurveType curveType) 
Densifies the input geometry by creating additional vertices along the geometry, using a geodesic curve.
 geometry  The input geometry.
 maxSegmentLength  The maximum distance between vertices when the input geometry is densified, in the given linear units.
 lengthUnit  The unit of measurement for maxSegmentLength. If null, meters are assumed.
 curveType  The Enums.GeodeticCurveType to use.
See also Enums.GeodeticCurveType.
A new geometry object that represents the difference of the two given input geometries.
Constructs the settheoretic difference between two geometries.
 geometry1 The first geometry.
 geometry2 The second geometry.
The output geometry is the part of geometry1 that does not intersect geometry2. The dimension of geometry2 must be equal to or greater than the dimension of geometry1.
Returns if the two geometries are disjoint.
 geometry1  A geometry object.
 geometry2  Another geometry object.
Supports true curves.
Returns the simple planar distance between two geometries.
Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference. Ensure that you understand the potential for error with the geometry's spatial reference. If you need to calculate more accurate results, consider using a different spatial reference, or using the geodetic equivalent, GeometryEngine::distanceGeodetic().
 geometry1  The first geometry for this measurement.
 geometry2  The second geometry for this measurement.
See Introduction to Spatial References for more information.
GeodeticDistanceResult distanceGeodetic(Point point1, Point point2, LinearUnit distanceUnit, AngularUnit azimuthUnit, GeodeticCurveType curveType) 
Returns the geodetic distance between two points, and the azimuths from one to another.
 point1  A point object.
 point2  Another point object.
 distanceUnit  The LinearUnit of measurement for the returned results. Assumes meters if no unit is given.
 azimuthUnit  The AngularUnit of measurement for the returned results. Assumes degrees if no unit is given.
 curveType  The Enums.GeodeticCurveType to use.
See also Enums.GeodeticCurveType.
Geometry ellipseGeodesic(GeodesicEllipseParameters parameters) 
Returns a geodesic ellipse centered on a specific point.
 parameters  The GeodesicEllipseParameters to use.
This method can return an ellipse as a Polygon, Polyline, or Multipoint geometry.
A geodesic ellipse is defined by a center point, the lengths of its semimajor and semiminor axes, and the angular direction of its semimajor axis.
This method returns an empty geometry when:
 parameters is empty.
 parameters.center is empty.
 parameters.center does not contain a valid spatial reference.
 parameters.geometryType is Envelope or Point.
 Either semiaxis length is less than zero.
See also GeodesicEllipseParameters.
Returns whether two geometries are equal.
Returns true
if geometry1 is equal to geometry2.
Supports true curves.
Returns a polyline which is a result of extending a polyline with an extender using the type of extension specified with extendOptions flags.
The output polyline has the first and last segment of each path extended to the extender if the segments can be interpolated to intersect the extender. In the case that the segments can be extended to multiple segments of the extender, the shortest extension is chosen. Only end points for paths that are not shared by the end points of other paths are extended. If the polyline cannot be extended by the input extender, then a empty polyline is returned.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns the length along the line nearest the input point, expressed as the fraction of the line's length between 0.0 and 1.0, or NAN if the point is outside the tolerance.
Finds the location on the line nearest the input point, expressed as the fraction along the line's total geodesic length, if the point is within the specified distance from the closest location on the line. The line and point must have the same spatial references.
 line  The line to locate the point's distance along its length.
 point  The point to locate.
 tolerance  The maximum distance that a point is allowed to be from the line, in the units of the SpatialReference. If the tolerance is 1, the fraction of the closest location on the line is always returned as long as the point lies between the two ends of the polyline. If the distance from the point to the closest location on the line is greater than the tolerance, or the tolerance is 1 and the point does not lie between the two ends of the polyline, NAN is returned.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.6.
Returns a geometry generalized by removing some vertices.
The DouglasPeucker algorithm (with enhancements) is used to generalize the geometry. The algorithm simplifies complex lines by reducing the number of points used to represent them.
 geometry  The input geometry.
 maxDeviation  The maximum distance that the generalized geometry can deviate from the original one, specified in the units of the input geometry's spatial reference.
 removeDegenerateParts  If
true
, degenerate parts of the generalized geometry that are undesired for drawing is removed.
Supports true curves as input, producing a densified curve as output where applicable.
Returns the intersection of two geometries.
 geometry1 The first geometry.
 geometry2 The second geometry.
Returns a geometry that represents the intersection of the two input geometries.
Supports true curves.
Returns the intersection of two geometries.
 geometry1  The first geometry.
 geometry2  The second geometry.
Returns a list of geometry objects that represent the intersection of geometry1 and geometry2.
The returned list contains one geometry of each dimension for which there are intersections. For example, if both inputs are polylines, the collection contains at most two geometries: the first a multipoint containing the points at which the lines cross, and the second a polyline containing the lines of overlap. If a crossing point lies within a line of overlap, only the line of overlap is present  the result set is not selfintersecting. If there are no crossing points or there are no lines of overlap, the respective geometry is not present in the returned list.
If the input geometries do not intersect, the resulting list is empty.
The grid below shows, for each combination of pairs of input geometry types, the types of geometry that is contained within the returned list if there are intersections of that type.
Input type  Point/Multipoint  Polyline  Polygon/Envelope 

Point/Multipoint  Multipoint  Multipoint  Multipoint 
Polyline  Multipoint  Multipoint, Polyline  Multipoint, Polyline 
Polygon/Envelope  Multipoint  Multipoint, Polyline  Multipoint, Polyline, Polygon 
The geometries in the returned list are sorted by ascending dimensionality, e.g. multipoint (dimension 0) then polyline (dimension 1) then polygon (dimension 2) for the intersection of two geometries with area that have intersections of those types.
Supports true curves.
Returns whether two geometries intersect.
 geometry1  The first geometry.
 geometry2  The second geometry.
Returns true
if geometry1 intersects geometry2.
Supports true curves.
bool isSimple(Geometry geometry) 
Returns whether the input geometry is simple.
You can simplify geometries by calling simplify when required. This property allows you to check whether you need to call simplify, which creates a copy of the original Geometry.
When the polyline has zvalues, the degenerate segments are those that are shorter than the tolerance in x,y plane, and the change in zvalue along the segment is less than or equal to the zvalue tolerance.
For Polygons, exterior rings are clockwise, and interior rings (holes) are counterclockwise. Rings can touch other rings in finite number of points. Rings can be selftangent in finite number of points. Vertices are either exactly coincident, or further than the tolerance from each other. If a vertex is not equal to any boundary point of a segment, it must be further than tolerance from any segment. No segment length is zero or less than tolerance. Each path contains at least three nonequal vertices. No empty paths allowed. Order of rings does not matter.
Point geometry is always simple.
For Multipoints, there can be no point with exactly equal x and y values. The tolerance is not considered in this comparison.
Note: Tolerance for the xcoordinate, ycoordinate, zcoordinate, and mvalue, is provided in or calculated from the spatial reference.
Returns the label point for a polygon.
Calculates an interior point for the given Polygon. This point can be used by clients to place a label for the polygon.
Supports true curves.
double length(Geometry geometry) 
Returns the length of the given geometry.
 geometry  The input geometry.
Returns the length using the same unit of measurement as the geometry's spatial reference.
double lengthGeodetic(Geometry geometry, LinearUnit lengthUnit, GeodeticCurveType curveType) 
Returns the geodetic length of a geometry.
 geometry  The input geometry.
 lengthUnit  The unit of measure for the returned value. If null, meters are assumed.
 curveType  The Enums.GeodeticCurveType to use.
Supports true curves, calculating the result by densifying curves.
See also Enums.GeodeticCurveType.
list<Point> moveGeodetic(list<Point> pointCollection, double distance, LinearUnit distanceUnit, double azimuth, AngularUnit azimuthUnit, GeodeticCurveType curveType) 
Moves all points in the point collection in a specified direction by a geodetic distance.
Returns new collection of points moved by the given distance from the input collection.
 pointCollection  A list of point objects.
 distance  The distance to move the points.
 distanceUnit  The LinearUnit of measurement for distance. Assumes meters if no unit is given.
 azimuth  The azimuth angle of the direction for the points.
 azimuthUnit  The AngularUnit of measurement for azimuth. Assumes degrees if no value is given.
 curveType  The Enums.GeodeticCurveType to use.
There must be the same spatial reference on each point in the input list of points. The returned collection is in the same order as the input, but with new points at their destination locations. Specifying a negative distance moves points in the opposite direction from azimuth.
See also Enums.GeodeticCurveType.
ProximityResult nearestCoordinate(Geometry geometry, Point point) 
Returns a ProximityResult that describes the nearest point in the input geometry to the input point.
Input geometry of type Envelope is not supported. To find the nearest coordinate on an Envelope, convert it to a Polygon first.
GeometryEngine::nearestCoordinate considers all points along all segments of all parts of the geometry, whereas GeometryEngine::nearestVertex considers only points that are a start point or end point of a segment of the geometry.
If the specified geometry is a polyline or polygon, the nearest coordinate is the closest point in a segment that comprises geometry; it may not necessarily be the closest vertex of a segment. If you want to obtain the closest vertex in the polyline or polygon use the GeometryEngine::nearestVertex(Geometry, Point) method instead.
Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference. Ensure that you understand the potential for error with the geometry's spatial reference. If you need to calculate more accurate results consider using a different spatial reference, or using the geodetic equivalent, GeometryEngine::nearestCoordinateGeodetic.
Supports true curves.

Returns a ProximityResult that describes the nearest point in the input geometry to the input point, by using a shapepreserving geodesic approximation of the input geometry.
Input geometry of type Envelope is not supported. To find the nearest coordinate on an Envelope, convert it to a Polygon first. Planar measurements of distance and area can be extremely inaccurate if using an unsuitable spatial reference.
Returns null if the input geometry is empty. ProximityResult::distance is zero if the point lies inside an input polygon, polyline, or envelope.
Supports true curves.
 geometry  A geometry object on which to calculate the nearest coordinate to the point parameter.
 point  The point from which to calculate the nearest coordinate on the geometry parameter.
 maxDeviation  The maximum distance that the geodesic geometry can deviate from the original, in the units of the deviationUnit parameter.
 deviationUnit  The unit of measure for the maxDeviation parameter. If
null
, the units of maxDeviation are assumed to be meters.
This method was introduced in Esri.ArcGISRuntime 100.14.
ProximityResult nearestVertex(Geometry geometry, Point point) 
Returns a ProximityResult that describes the nearest vertex in the input geometry to the input point.
Input geometry of type Envelope is not supported. To find the nearest vertex on an Envelope, convert it to a Polygon first. Distance is measured in the units of the spatial reference of the input geometry.
Returns a geometry folded into the 360degree range of its associated spatial reference.
 geometry  The input geometry to fold.
Folding is used when a geometry intersects the minimum or maximum meridian of the spatial reference, or when geometry is completely outside of the meridian range.
Use this method when editing geometries on a map that has wraparound enabled. In these cases, it is imperative to fold geometries, as the original coordinates correspond to the frame of the map. For example, if you add new features to a map with wraparound enabled, and then you pan west across the dateline several times, the coordinates of the newly added features would be incorrectly outside of the spatial reference's maximum extent until they were folded using this static method.
The geometry's spatial reference must be a pannable projected coordinate system (PCS) or a geographic coordinate system (GCS). A pannable PCS is a rectangular PCS where the xcoordinate range corresponds to a 360degree range on the defining GCS. A GCS is always pannable.
Folding does not preserve geodetic area or length. Folding does not preserve the perimeter of a polygon.
Returns the folded geometry. The resulting geometry is completely inside the coordinate system extent. If geometry or its spatial reference are empty, an empty geometry is returned. If the geometry's spatial reference is not pannable, the input geometry is returned. If the geometry is a nonempty envelope, this method returns a polygon.
Supports true curves.
Returns an offset version of the input geometry.
 geometry  The input geometry.
 distance  The offset distance for the new geometry.
 offsetType  The Enums.GeometryOffsetType to produce in the resulting geometry.
 bevelRatio  The ratio used to produce a bevel join instead of a miter join (used only when the offset type is Miter).
 flattenError  The maximum distance of the resulting segments compared to the true circular arc (used only when offsetType is GeometryOffsetTypeRounded).
The offset operation creates a geometry that is a constant distance from the input geometry. This is similar to buffering, but produces a one sided result instead of one that surrounds the input geometry. If distance > 0 then the offset geometry is constructed to the right of the input geometry, otherwise it is constructed to the left.
See also Enums.GeometryOffsetType.
Returns whether two geometries overlap.
 geometry1  The first geometry.
 geometry2  The second geometry.
Returns true
when the two geometries have the same dimension and when their intersection result is a geometry of the same dimension. If the intersection result is a geometry with a lesser dimension than the input geometries, then method returns false
.
For example: two input polygons must return a polygon to overlap. If two polygons intersect each other at exactly one point then no overlap has occurred because the intersection result is a point whose dimension is zero.
Geometry project(Geometry geometry, SpatialReference spatialReference) 
Projects the given geometry from its current spatial reference system into the given spatial reference system.
A default bestchoice DatumTransformation is applied to the project operation. To control the specific transformation used, use GeometryEngine.projectWithDatumTransformation.
If the geometry parameter has zvalues, those zvalues are also transformed if both the SpatialReference of that geometry and the spatialReference parameter, have a vertical coordinate system.
Supports true curves. Projecting curves located at poles and coordinate system horizons using ArcGIS Maps SDK may give results that differ slightly from other ArcGIS software because ArcGIS Maps SDK uses a different geometry projection function.
 geometry  The input geometry.
 spatialReference  The output spatial reference.
Returns the geometry projected into the given SpatialReference. If the input geometry has no SpatialReference, no projection occurs. Instead, an identical geometry with the given SpatialReference is returned.
Geometry projectWithDatumTransformation(Geometry geometry, SpatialReference spatialReference, DatumTransformation datumTransformation) 
Projects the given geometry from its current spatial reference system into the given output spatial reference system, applying the datum transformation provided.
Use this method to project a geometry if the difference between the input geometry's spatialReference and the output SpatialReference involves a change of datum, and you do not wish to use the default datum transformation used by GeometryEngine::project.
If the input geometry has a null
SpatialReference, no projection occurs. Instead, an identical geometry with the given SpatialReference is returned.
Supports true curves. Projecting curves located at poles and coordinate system horizons using ArcGIS Maps SDK may give results that differ slightly from other ArcGIS software because ArcGIS Maps SDK uses a different geometry projection function.
 geometry  The input geometry.
 spatialReference  The output spatial reference.
 datumTransformation  The datum transformation that describes how coordinates are converted from one coordinate system to another. Using a HorizontalVerticalTransformation here also transforms the zvalues of the geometry if 1) the geometry parameter has zvalues and both the SpatialReference of the geometry parameter, and 2) if the output SpatialReference have a vertical coordinate system set.
Returns whether two geometries have a specific spatial relationship.
 geometry1  The first geometry of the relation.
 geometry2  The second geometry of the relation.
 relation  The DE9IM string code describing the relationship to test.
The Dimensionally Extended 9 Intersection Model (DE9IM) matrix relation (encoded as a string) to test against the relationship of the two geometries. This string contains the test result of each intersection represented in the DE9IM matrix. Each result is one character of the string and may be represented as either a number (maximum dimension returned: '0','1','2'), a Boolean value ('T' or 'F'), or a mask character (for ignoring results: '*').
For example, each of the following DE9IM string codes are valid for testing whether a polygon geometry completely contains a line geometry: "TTTFFTFFT" (Boolean), "T*****FF*" (ignore irrelevant intersections), or "102FF*FF*" (dimension form). Each returns the same result.
See this article and this help page for more information about the DE9IM model and how string codes are constructed.
Supports true curves.
Returns a copy of the given geometry with its mvalues removed.
 geometry  The input geometry.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns a copy of the given geometry with its zcoordinate removed.
 geometry  The input geometry.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns a copy of the given geometry with its zcoordinate and mvalue removed.
 geometry  The input geometry.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns a polygon or polyline reshaped with a single path polyline.
 geometry  The polygon or polyline to be reshaped.
 reshaper  The single path polyline reshaper.
For polygons, only individual paths can be reshaped. However, polylines can be reshaped across paths. If the geometry cannot be reshaped by the input reshaper, then an empty polygon or polyline is returned.
This method was introduced in Esri.ArcGISRuntime 100.1.
Geometry sectorGeodesic(GeodesicSectorParameters parameters) 
Returns a geodesic sector defined by a geodesic arc and two radii.
 parameters  The GeodesicSectorParameters to use.
This method can produce a sector as a polygon, polyline or multipoint geometry.
A geodesic sector is defined by a geodesic elliptical arc and two radii extending from the center point of the arc to the points where they each intersect the arc.
The arc is a portion of an ellipse. The ellipse is defined by a center point, the lengths of its semimajor and semiminor axes, and the direction of its semimajor axis.
The first radius of the sector is defined by the start direction angle relative to the direction of the semimajor axis. The second radius is the sum of the start direction and the sector angle.
This method returns an empty geometry when:
parameters
is empty. parameters.center is empty or is outside the horizon of the spatial reference.
 parameters.center does not contain a valid spatial reference or is a local spatial reference.
 parameters.geometryType is Envelope or Point.
 Either semiaxis length is less than zero.
See also GeodesicSectorParameters.
Returns a copy of a geometry with the supplied mvalue.
 geometry  The input geometry.
 m  The mvalue to apply to the returned geometry.
If the given geometry already has mvalues, they are replaced within the resulting geometry by the supplied mvalue. The resulting geometry has Geometry::hasM true
.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns a copy of a geometry with the supplied zcoordinate.
 geometry  The input geometry.
 z  The zcoordinate to apply to the returned geometry.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns a copy of a geometry with the supplied zcoordinate and mvalue.
 geometry  The input geometry.
 z  The zcoordinate to apply to the returned geometry.
 m  The mvalue to apply to the returned geometry.
If the given geometry already has zcoordinates or mvalues, they are replaced in the resulting geometry by the supplied zvalues and mvalues. The resulting geometry will have both Geometry::hasZ and Geometry::hasM true
.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Simplifies the given geometry to make it topologically consistent according to its geometry type.
 geometry  The input geometry.
Returns a simplified copy of the input geometry.
Supports true curves.
Returns the symmetric difference of two geometries.
 geometry1  The first geometry of the relation.
 geometry2  The second geometry of the relation.
The symmetric difference includes the parts which are in either of the geometries, but not in both.
Returns whether two geometries touch on their borders.
 geometry1  The first geometry.
 geometry2  The second geometry.
Returns true
if the border of the first geometry touches the border of the second.
Supports true curves.
Returns the union of two geometries.
 geometry1  The first geometry.
 geometry2  The second geometry.
Both input geometries must be of the same geometry type and share the same spatial reference.
Supports true curves.
Returns the union of the list of geometries.
All input geometries must be of the same geometry type and share the same spatial reference.
Supports true curves.
This method was introduced in Esri.ArcGISRuntime 100.1.
Returns whether one geometry is completely within another geometry.
 geometry1  The first geometry.
 geometry2  The second geometry.
Returns true
if geometry1 lies completely within geometry2.
Supports true curves.