# Package-level declarations

## Types

Defines an angular unit of measurement. The angular unit class is derived from the unit class.

Defines a list of the most commonly-used angular units of measurement. These values can be used to create instances of AngularUnit, as an alternative to using well-known IDs (WKIDs). In addition to the units in this enumeration, you can also use less commonly-used units, by passing a WKID of an angular unit to the inherited MeasurementUnit.fromWkid(Int) factory method. The function MeasurementUnit.wkid returns the WKID of the unit.

Defines an area unit of measurement. The area unit class is derived from the unit class.

Defines a list of the most commonly-used units of area measurement. These values can be used to create instances of AreaUnit, as an alternative to using well-known IDs (WKIDs). In addition to the units in this enumeration, you can also use less commonly-used units, by passing a WKID of an area unit to the inherited MeasurementUnit.fromWkid(Int) factory method. The function MeasurementUnit.wkid returns the WKID of the unit.

Converts between Points and formatted coordinate notation strings such as decimal degrees; degrees, minutes, and seconds; U.S. National Grid (USNG); and Military Grid Reference System (MGRS).

A cubic Bezier curve for use in a multipart geometry.

Represents a function to convert between two coordinate systems. This is the base class for classes used to transform coordinates between spatial references that have different datums. The inverse of the datum transformation, used to transform in the opposite direction, may be accessed using a member function.

Distance holds the distance measurement data associated with a specific distance component. Distance contains the value and associated LinearUnit of a specific distance component.

An elliptic arc segment for use in a multipart geometry. An elliptic arc is the portion of the boundary of a 2D ellipse that connects two points.

A geometry that represents a rectangular shape. An Envelope is an axis-aligned box described by the coordinates of the lower left corner and the coordinates of the upper right corner. They are commonly used to represent the spatial extent covered by layers or other geometries, or to define an area of interest. They can be used as the geometry for a graphic and as an input for many spatial operations. Although they both represent a geographic area, an Envelope is distinct from a Polygon, and they cannot always be used interchangeably.

The envelope builder allows you to create and modify envelope geometries incrementally. Envelope geometries are immutable and cannot be changed directly once created. Use the constructors to define minimum and maximum x,y coordinates, z and m values, and a SpatialReference. Once set, the SpatialReference cannot be changed. Use GeometryBuilder.toGeometry() to return the new Envelope from the builder.

Indicates the location of a point relative to a GARS cell.

The required parameters for calling GeometryEngine.ellipseGeodesicOrNull(GeodesicEllipseParameters). The parameters needed when calling GeometryEngine's ellipseGeodesic method.

The required parameters for calling GeometryEngine.sectorGeodesicOrNull(GeodesicSectorParameters). The parameters needed when calling GeometryEngine's sectorGeodesic method.

The different types of geodetic curves.

The returned results of calling GeometryEngine.distanceGeodeticOrNull(Point, Point, LinearUnit, AngularUnit, GeodeticCurveType). The results of calling GeometryEngine's distanceGeodetic methods.

Used to transform coordinates of geometries between spatial references that have two different geographic coordinate systems. Each geographic transformation has an input and an output spatial reference. The transformation operates on the horizontal (geographic) datums in each spatial reference.

Represents a step in the process of transforming between datums. Each geographic transformation step can be constructed from a well-known ID (WKID) that represents a geographic transformation. Because the Projection Engine supports thousands of transformations, WKIDs are not presented in the SDK as enumerations. Instead, they are documented in the developers guide.

Base class for all classes that represent geometric shapes. Geometry is the base class for two-dimensional (x,y) and three-dimensional (x,y,z) geometries, such as Point, Multipoint, Polyline, Polygon, and Envelope. It represents real-world objects by defining a shape at a specific geographic location, and is used throughout the API to represent the shapes of features and graphics, layer extents, viewpoints, and GPS locations. It is also used to define the inputs and outputs for spatial analysis and geoprocessing operations, and to measure distances and areas.

Geometry builders allow you to create and modify geometries incrementally. This is the base class for a range of geometry builders, such as a PointBuilder, PolylineBuilder and PolygonBuilder. Each GeometryType has a corresponding type of builder. You can create and modify polygons with PolygonBuilder, envelopes with EnvelopeBuilder, and so on. Use a geometry builder in editing workflows where you need to build up or edit geometry one vertex at a time, for example, when you need to add or edit a vertex from a custom streaming GIS data source. You can either create an empty geometry builder and build up the shape of a Geometry, or you can create a geometry builder with an existing Geometry and modify it.

Indicates the dimensionality of a Geometry, relating to the number of spatial dimensions in which the geometry may have a size.

Performs geometric operations such as spatial relationship tests, reprojections, shape manipulations, topological query and analysis operations on Geometry objects. Capabilities include:

Flags for the type of extend operation to perform.

The different types of geometry offset joints.

The different types of geometries. Each of the different supported geometry types. Can get the type by calling Geometry.objectType.

Used to transform coordinates of z-aware geometries between spatial references that have different geographic and/or vertical coordinate systems. A HorizontalVerticalTransformation is an ordered list of HorizontalVerticalTransformationStep objects. Each HorizontalVerticalTransformation has an input and an output SpatialReference, and this HorizontalVerticalTransformation object can be used to convert coordinates between the horizontal (geographic) and vertical datums of these spatial references using the series of steps it contains. Use the GeometryEngine.projectOrNull(Geometry, SpatialReference, DatumTransformation) method to transform the coordinates of a specific Geometry.

Represents a step in the process of transforming between horizontal and/or vertical datums. Each HorizontalVerticalTransformationStep can be constructed from a well-known ID (WKID) that represents a horizontal (geographic) or a vertical transformation. This API supports thousands of predefined transformations, and all the supported WKIDs are documented in the 'Coordinate systems and transformations' topic in the developers guide.

Supported formats for representing latitude-longitude geographical coordinates as a string.

Defines a linear unit of measurement. The linear unit class is derived from the unit class.

Defines a list of the most commonly-used units of linear measurement. These values can be used to create instances MeasurementUnit, as an alternative to using well-known IDs (WKIDs). In addition to the units in this enumeration, you can also use less commonly-used units, by passing a WKID of a linear unit to the inherited MeasurementUnit.fromWkid(Int) factory method. The function MeasurementUnit.wkid returns the WKID of the unit.

A line segment represents a straight line from its start to end point. It is derived from a segment object.

Defines a unit of measurement. MeasurementUnit is a base class for measurement classes such as LinearUnit, AngularUnit, and AreaUnit. Many function parameters only accept specific types of measurement to reduce the chance of accidental use of inappropriate values, but some generic functions accept all unit types, such as for translation from ID to text description.

Determines the lettering scheme and treatment of coordinates at 180 degrees longitude when converting MGRS coordinates.

Defines common members for polyline and polygon multipart geometries. Multipart geometries are based upon the parent Geometry class. The geometry class is immutable which means that you cannot change its shape once it is created. If you need to modify a multipart once it has been created, use the MultipartBuilder class instead. The MultipartBuilder.toGeometry() method provides you with the base geometry object.

The multipart builders allow you to create and modify geometries made up of multiple parts, such as Polyline and Polygon. This is a base class for the geometry multipart builders, such as PolylineBuilder or PolygonBuilder.

An ordered collection of points that can be managed as a single geometry. Multipoint geometries represent an ordered collection of points. They can be used as the geometry of features and graphics, or as input or output for spatial operations. For features that consist of a very large number of points that share the same set of attribute values, multipoints may be more efficient to store and analyze in a geodatabase compared to using multiple point features.

The multipoint builder allows you to create and modify multipoint geometries. Multipoint geometries represent an ordered collection of points. They can be used as the geometry of features and graphics, or as input or output for spatial operations. For features that consist of a very large number of points that share the same set of attribute values, multipoints may be more efficient to store and analyze in a geodatabase compared to using multiple point features.

Represents a single part of a multipart builder. Multipart builder is the base class of PolygonBuilder or PolylineBuilder. A part is made up of a collection of segments making the edge of the multipart. Additionally access and modified using the points (vertexes) of segments is available. Adjacent segments which share an end point and a start point are connected and the shared vertex is not duplicated when accessing points. The mutable part can represent gaps between one end point and an adjacent start. However, this is only recommended as a temporary state while modifying a multipart builder, when using GeometryBuilder.toGeometry() the gaps are closed with line segments.

A collection object that can be changed containing parts for a geometry. Each part is represented by a MutablePart.

A collection object that can be changed containing points. Contains a collection of points that can be changed.

Represents a single part of a multipart geometry (polygon or polyline). A collection of Segment objects that together represent a part in a Multipart geometry. You can also access the Point objects that represent the vertices of the geometry (that is, the ends of each segment), using point-based helpers such as Part.getPoint(Int).

Represents immutable collection of parts for a polygon or polyline geometry. Each part is a collection of segments. Polygons and polyline can have multiple disjoint parts. Each part is represented by a Part. A part is composed of segments representing the edge of the polygon or polyline.

A location defined by x and y (and optionally z) coordinates. Point geometries represent discrete locations or entities, such as a geocoded house address, the location of a water meter in a water utility network, or a moving vehicle. Larger geographic entities (such as cities) are often represented as points on small-scale maps. Points can be used as the geometry of features and graphics and are often used to construct more complex geometries. They are also used in a Viewpoint to define the center of the display.

The point builder allows you to create and modify point geometries incrementally. Point geometries are immutable and cannot be changed directly once created. The PointBuilder has a number of constructors to allow you to create a new point, or you can edit an existing point using PointBuilder.setXy(Double, Double) or PointBuilder.offsetBy(Double, Double). Use GeometryBuilder.toGeometry() to return the new Point from the builder.

Represents an immutable collection of points. This collection is used to represent the content of a Multipoint geometry.

A multipart shape used to represent an area. Polygon geometries represent the shape and location of areas, for example, a country, island, or a lake. A polygon can be used as the geometry of features and graphics, or as input or output of tasks or geoprocessing operations, such as the output of a drive-time analysis or a GeometryEngine.bufferOrNull(Geometry, Double) operation.

The polygon builder allows you to create and modify Polygon geometries incrementally. Polygon geometries are immutable and cannot be changed directly once created. A polygon is a closed area shape defined by one or more parts. Each part in a polygon is a connected sequence of Segment instances that start and end at the same point (a closed ring). If a polygon has more than one ring, the rings may be separate from one another or they may nest inside one another, but they should not overlap. Note: interior rings, to make donut polygons, should be counter-clockwise in direction to be topology correct. If there is ever a doubt about the topological correctness of a polygon, call GeometryEngine.simplifyOrNull(Geometry) to correct any issues.

A multipart shape used to represent a linear feature. Polyline geometries represent the shape and location of linear features, such as a street in a road network, a contour line representing an elevation value, or a hiking trail. A polyline can be used to define geometry for features and graphics, or as input or output for tasks or geoprocessing operations, such as the output of a network trace.

The polyline builder allows you to create and modify Polyline geometries incrementally. Polyline geometries are immutable and cannot be changed directly once created. The polyline builder allows you to change the contents of the shape by using the mutable MutablePartCollection that is accessible from MultipartBuilder.parts. Each MutablePart, in the collection, comprises a collection of segments that make the MutablePart. You can add or remove a MutablePart from the MutablePartCollection, or you can create a new or edit the segment vertices of an existing MutablePart. Use GeometryBuilder.toGeometry() to return the new Polyline from the builder.

The returned results of calling GeometryEngine.nearestCoordinate(Geometry, Point) and GeometryEngine.nearestVertex(Geometry, Point).

A segment represents an edge of a multipart geometry, connecting a start to an end point. A segment describes a continuous line between a start location and an end location. ArcGIS software supports both linear segments (represented by LineSegment) and curve segments (represented by CubicBezierSegment and EllipticArcSegment).

The spatial reference specifies how geometry coordinates relate to real-world space. Instances of this class represent a specific coordinate system identified by a well-known ID (WKID) number or well-known text (WKT) string. There are two broad classes of coordinate systems:

Allows discovery and management of the transformations used to convert coordinates between different datums. The transformation catalog class provides a mechanism for discovering available DatumTransformation objects. You can retrieve the default transformation used internally to convert coordinates, and find other available transformations. An area of interest may be taken into account.

Determines how latitude is designated in UTM notation. Within a single longitudinal zone within the UTM system, two points share the same grid position: one in the northern hemisphere and one in the south. Two schemes are used to resolve this ambiguity. In the first, the point is designated a latitude band, identified with letters C through X (omitting I and O). In the second, in place of the latitude band, a hemisphere indicator (N or S) is used.