layout: default title: GeometryEngine parent: Core Classes —
dymaptic.GeoBlazor.Core
dymaptic.GeoBlazor.Core.Model
GeometryEngine Class
A client-side geometry engine for testing, measuring, and analyzing the spatial relationship between two or more 2D
geometries. If more than one geometry is required for any of the methods below, all geometries must have the same
spatial reference for the methods to work as expected.
ArcGIS Maps SDK for JavaScript
public class GeometryEngine : dymaptic.GeoBlazor.Core.Model.LogicComponent
Inheritance System.Object 🡒 LogicComponent 🡒 GeometryEngine
Constructors
GeometryEngine(IJSRuntime, AuthenticationManager) Constructor
Default Constructor
public GeometryEngine(Microsoft.JSInterop.IJSRuntime jsRuntime, dymaptic.GeoBlazor.Core.Model.AuthenticationManager authenticationManager);
Parameters
jsRuntime
Microsoft.JSInterop.IJSRuntime
Injected JavaScript Runtime reference
authenticationManager
AuthenticationManager
Injected Identity Manager reference
Methods
GeometryEngine.AddPath(PolyLine, Point[]) Method
Adds a path, or line segment, to the polyline. When added, the index of the path is incremented by one.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine> AddPath(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, dymaptic.GeoBlazor.Core.Components.Geometries.Point[] points);
Parameters
polyLine
PolyLine
The polyline to add the path to. Will return a new modified copy.
The polyline path to add as an array of Points.
Returns
System.Threading.Tasks.Task<PolyLine>
Returns a new polyline with the added path.
GeometryEngine.AddPath(PolyLine, MapPath) Method
Adds a path, or line segment, to the polyline. When added, the index of the path is incremented by one.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine> AddPath(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, dymaptic.GeoBlazor.Core.Objects.MapPath points);
Parameters
polyLine
PolyLine
The polyline to add the path to. Will return a new modified copy.
points
MapPath
The polyline path to add as a MapPath.
Returns
System.Threading.Tasks.Task<PolyLine>
Returns a new polyline with the added path.
GeometryEngine.AddRing(Polygon, Point[]) Method
Adds a ring to the Polygon. The ring can be one of the following: an array of numbers or an array of points. When added the index of the ring is incremented by one.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> AddRing(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, dymaptic.GeoBlazor.Core.Components.Geometries.Point[] points);
Parameters
polygon
Polygon
The polygon to add the ring to.
A polygon ring. The first and last coordinates/points in the ring must be the same.
Returns
System.Threading.Tasks.Task<Polygon>
Returns a new polygon with the added ring.
GeometryEngine.AddRing(Polygon, MapPath) Method
Adds a ring to the Polygon. The ring can be one of the following: an array of numbers or an array of points. When added the index of the ring is incremented by one.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> AddRing(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, dymaptic.GeoBlazor.Core.Objects.MapPath points);
Parameters
polygon
Polygon
The polygon to add the ring to.
points
MapPath
A polygon ring. The first and last coordinates/points in the ring must be the same.
Returns
System.Threading.Tasks.Task<Polygon>
Returns a new polygon with the added ring.
GeometryEngine.AreEqual(Geometry, Geometry) Method
Indicates if two geometries are equal.
public System.Threading.Tasks.Task<bool> AreEqual(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
First input geometry.
geometry2
Geometry
Second input geometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the two input geometries are equal.
Remarks
In ArcGIS for JS, this method is called Equals
. However, this term has special meaning in .NET, so we have
renamed here.
GeometryEngine.Buffer(Geometry, double, Nullable) Method
Creates planar (or Euclidean) buffer polygons at a specified distance around the input geometries.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> Buffer(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double distance, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null);
Parameters
geometry
Geometry
The buffer input geometries.
distance
System.Double
The specified distance(s) for buffering.
unit
System.Nullable<LinearUnit>
Measurement unit of the distance(s). Defaults to the units of the input geometries.
Returns
System.Threading.Tasks.Task<Polygon>
The resulting buffer.
Remarks
The GeometryEngine has two methods for buffering geometries client-side: buffer and geodesicBuffer. Use caution
when deciding which method to use. As a general rule, use geodesicBuffer if the input geometries have a spatial
reference of either WGS84 (wkid: 4326) or Web Mercator. Only use buffer (this method) when attempting to buffer
geometries with a projected coordinate system other than Web Mercator. If you need to buffer geometries with a
geographic coordinate system other than WGS84 (wkid: 4326), use geometryService.buffer().
GeometryEngine.Buffer(IEnumerable, IEnumerable, Nullable, Nullable) Method
Creates planar (or Euclidean) buffer polygons at a specified distance around the input geometries.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon[]> Buffer(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries, System.Collections.Generic.IEnumerable<double> distances, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null, System.Nullable<bool> unionResults=null);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
The buffer input geometries.
distances
System.Collections.Generic.IEnumerable<System.Double>
The specified distance(s) for buffering. The length of the geometry array does not have to equal the length of the
distance array. For example, if you pass an array of four geometries: [g1, g2, g3, g4] and an array with one
distance: [d1], all four geometries will be buffered by the single distance value. If instead you use an array of
three distances: [d1, d2, d3], g1 will be buffered by d1, g2 by d2, and g3 and g4 will both be buffered by d3. The
value of the geometry array will be matched one to one with those in the distance array until the final value of
the distance array is reached, in which case that value will be applied to the remaining geometries.
unit
System.Nullable<LinearUnit>
Measurement unit of the distance(s). Defaults to the units of the input geometries.
unionResults
System.Nullable<System.Boolean>
Determines whether the output geometries should be unioned into a single polygon.
Returns
System.Threading.Tasks.Task<Polygon[]>
The resulting buffers.
Remarks
The GeometryEngine has two methods for buffering geometries client-side: buffer and geodesicBuffer. Use caution
when deciding which method to use. As a general rule, use geodesicBuffer if the input geometries have a spatial
reference of either WGS84 (wkid: 4326) or Web Mercator. Only use buffer (this method) when attempting to buffer
geometries with a projected coordinate system other than Web Mercator. If you need to buffer geometries with a
geographic coordinate system other than WGS84 (wkid: 4326), use geometryService.buffer().
GeometryEngine.CenterExtentAt(Extent, Point) Method
Centers the given extent to the given point, and returns a new extent.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Extent> CenterExtentAt(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent, dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
extent
Extent
The input extent.
point
Point
The point to center the extent on.
Returns
System.Threading.Tasks.Task<Extent>
The centered extent.
GeometryEngine.Clip(Geometry, Extent) Method
Calculates the clipped geometry from a target geometry by an envelope.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry?> Clip(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
geometry
Geometry
The geometry to be clipped.
extent
Extent
The envelope used to clip.
Returns
System.Threading.Tasks.Task<Geometry>
Clipped geometry.
GeometryEngine.Clone(T) Method
Creates a deep clone of the geometry.
public System.Threading.Tasks.Task<T> Clone<T>(T geometry)
where T : dymaptic.GeoBlazor.Core.Components.Geometries.Geometry;
Type parameters
T
Parameters
geometry
T
Returns
System.Threading.Tasks.Task<T>
Remarks
Unlike the Clone methods in the Geometry classes, this method does a loop through the ArcGIS JS SDK. Therefore, if you are having issues with unpopulated fields in the geometry, try using this method instead.
GeometryEngine.Contains(Geometry, Geometry) Method
Indicates if one geometry contains another geometry.
public System.Threading.Tasks.Task<bool> Contains(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry containerGeometry, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry insideGeometry);
Parameters
containerGeometry
Geometry
The geometry that is tested for the “contains” relationship to the other geometry. Think of this geometry as the
potential “container” of the insideGeometry.
insideGeometry
Geometry
The geometry that is tested for the “within” relationship to the containerGeometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the containerGeometry contains the insideGeometry.
GeometryEngine.ConvexHull(Geometry) Method
Calculates the convex hull of one or more geometries. A convex hull is the smallest convex polygon that encloses a
group of geometries or vertices. The input can be a single geometry (such as a polyline) or an array of any
geometry type. The hull is typically a polygon but can also be a polyline or a point in degenerate cases.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> ConvexHull(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry);
Parameters
geometry
Geometry
The input geometry used to calculate the convex hull.
Returns
System.Threading.Tasks.Task<Geometry>
Returns the convex hull of the input geometries. This is usually a polygon, but can also be a polyline (if the
input is a set of points or polylines forming a straight line), or a point (in degenerate cases).
GeometryEngine.ConvexHull(IEnumerable, Nullable) Method
Calculates the convex hull of one or more geometries. A convex hull is the smallest convex polygon that encloses a
group of geometries or vertices. The input can be a single geometry (such as a polyline) or an array of any
geometry type. The hull is typically a polygon but can also be a polyline or a point in degenerate cases.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> ConvexHull(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries, System.Nullable<bool> merge=null);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
The input geometries used to calculate the convex hull. The input array can include various geometry types.
merge
System.Nullable<System.Boolean>
Indicates whether to merge the output into a single geometry (usually a polygon).
Returns
System.Threading.Tasks.Task<Geometry[]>
Returns the convex hull of the input geometries. This is usually a polygon, but can also be a polyline (if the
input is a set of points or polylines forming a straight line), or a point (in degenerate cases).
GeometryEngine.Crosses(Geometry, Geometry) Method
Indicates if one geometry crosses another geometry.
public System.Threading.Tasks.Task<bool> Crosses(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The geometry to cross.
geometry2
Geometry
The geometry being crossed.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if geometry1 crosses geometry2.
GeometryEngine.Cut(Geometry, PolyLine) Method
Splits the input Polyline or Polygon where it crosses a cutting Polyline. For Polylines, all left cuts are grouped
together in the first Geometry. Right cuts and coincident cuts are grouped in the second Geometry and each
undefined cut, along with any uncut parts, are output as separate Polylines. For Polygons, all left cuts are
grouped in the first Polygon, all right cuts are grouped in the second Polygon, and each undefined cut, along with
any leftover parts after cutting, are output as a separate Polygon. If no cuts are returned then the array will be
empty. An undefined cut will only be produced if a left cut or right cut was produced and there was a part left
over after cutting, or a cut is bounded to the left and right of the cutter.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> Cut(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine cutter);
Parameters
geometry
Geometry
The geometry to be cut.
cutter
PolyLine
The polyline to cut the geometry.
Returns
System.Threading.Tasks.Task<Geometry[]>
Returns an array of geometries created by cutting the input geometry with the cutter.
GeometryEngine.Densify(Geometry, double, Nullable) Method
Densify geometries by plotting points between existing vertices.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Densify(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double maxSegmentLength, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> maxSegmentLengthUnit=null);
Parameters
geometry
Geometry
The geometry to be densified.
maxSegmentLength
System.Double
The maximum segment length allowed. Must be a positive value.
maxSegmentLengthUnit
System.Nullable<LinearUnit>
Measurement unit for maxSegmentLength. Defaults to the units of the input geometry.
Returns
System.Threading.Tasks.Task<Geometry>
The densified geometry.
GeometryEngine.Difference(Geometry, Geometry) Method
Creates the difference of two geometries. The resultant geometry is the portion of inputGeometry not in the
subtractor. The dimension of the subtractor has to be equal to or greater than that of the inputGeometry.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Difference(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry subtractor);
Parameters
geometry
Geometry
The input geometry to subtract from.
subtractor
Geometry
The geometry being subtracted from inputGeometry.
Returns
System.Threading.Tasks.Task<Geometry>
Returns the geometry of inputGeometry minus the subtractor geometry.
GeometryEngine.Difference(IEnumerable, Geometry) Method
Creates the difference of two geometries. The resultant geometry is the portion of inputGeometry not in the
subtractor. The dimension of the subtractor has to be equal to or greater than that of the inputGeometry.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> Difference(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry subtractor);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
The input geometries to subtract from.
subtractor
Geometry
The geometry being subtracted from inputGeometry.
Returns
System.Threading.Tasks.Task<Geometry[]>
Returns the geometry of inputGeometry minus the subtractor geometry.
GeometryEngine.Disjoint(Geometry, Geometry) Method
Indicates if one geometry is disjoint (doesn’t intersect in any way) with another geometry.
public System.Threading.Tasks.Task<bool> Disjoint(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The base geometry that is tested for the “disjoint” relationship to the other geometry.
geometry2
Geometry
The comparison geometry that is tested for the “disjoint” relationship to the other geometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if geometry1 and geometry2 are disjoint (don’t intersect in any way).
GeometryEngine.Distance(Geometry, Geometry, Nullable) Method
Calculates the shortest planar distance between two geometries. Distance is reported in the linear units specified
by distanceUnit or, if distanceUnit is null, the units of the spatialReference of input geometry.
public System.Threading.Tasks.Task<double> Distance(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> distanceUnit=null);
Parameters
geometry1
Geometry
First input geometry.
geometry2
Geometry
Second input geometry.
distanceUnit
System.Nullable<LinearUnit>
Measurement unit of the return value. Defaults to the units of the input geometries.
Returns
System.Threading.Tasks.Task<System.Double>
Distance between the two input geometries.
GeometryEngine.Expand(Extent, double) Method
Expands the extent by the given factor. For example, a value of 1.5 will expand the extent to be 50 percent larger than the original extent.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Extent> Expand(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent, double factor);
Parameters
extent
Extent
The input extent.
factor
System.Double
The factor by which to expand the extent.
Returns
System.Threading.Tasks.Task<Extent>
The expanded extent.
GeometryEngine.ExtendedSpatialReferenceInfo(SpatialReference) Method
Returns an object containing additional information about the input spatial reference.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Objects.SpatialReferenceInfo> ExtendedSpatialReferenceInfo(dymaptic.GeoBlazor.Core.Components.Geometries.SpatialReference spatialReference);
Parameters
spatialReference
SpatialReference
The input spatial reference.
Returns
System.Threading.Tasks.Task<SpatialReferenceInfo>
Resolves to a SpatialReferenceInfo object.
GeometryEngine.FlipHorizontal(Geometry, Point) Method
Flips a geometry on the horizontal axis. Can optionally be flipped around a point.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> FlipHorizontal(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Point? flipOrigin=null);
Parameters
geometry
Geometry
The input geometry to be flipped.
flipOrigin
Point
Point to flip the geometry around. Defaults to the centroid of the geometry.
Returns
System.Threading.Tasks.Task<Geometry>
The flipped geometry.
GeometryEngine.FlipVertical(Geometry, Point) Method
Flips a geometry on the vertical axis. Can optionally be flipped around a point.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> FlipVertical(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Point? flipOrigin=null);
Parameters
geometry
Geometry
The input geometry to be flipped.
flipOrigin
Point
Point to flip the geometry around. Defaults to the centroid of the geometry.
Returns
System.Threading.Tasks.Task<Geometry>
The flipped geometry.
GeometryEngine.FromArcGisJson(string) Method
Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.
public System.Threading.Tasks.Task<T> FromArcGisJson<T>(string json)
where T : dymaptic.GeoBlazor.Core.Components.Geometries.Geometry;
Type parameters
T
Parameters
json
System.String
A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
Returns
System.Threading.Tasks.Task<T>
Returns a new geometry instance.
GeometryEngine.Generalize(Geometry, double, Nullable, Nullable) Method
Performs the generalize operation on the geometries in the cursor. Point and Multipoint geometries are left
unchanged. Envelope is converted to a Polygon and then generalized.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Generalize(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double maxDeviation, System.Nullable<bool> removeDegenerateParts=null, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> maxDeviationUnit=null);
Parameters
geometry
Geometry
The input geometry to be generalized.
maxDeviation
System.Double
The maximum allowed deviation from the generalized geometry to the original geometry.
removeDegenerateParts
System.Nullable<System.Boolean>
When true the degenerate parts of the geometry will be removed from the output (may be undesired for drawing).
maxDeviationUnit
System.Nullable<LinearUnit>
Measurement unit for maxDeviation. Defaults to the units of the input geometry.
Returns
System.Threading.Tasks.Task<Geometry>
The generalized geometry.
GeometryEngine.GeodesicArea(Polygon, Nullable) Method
Calculates the area of the input geometry. As opposed to planarArea(), geodesicArea takes into account the
curvature of the earth when performing this calculation. Therefore, when using input geometries with a spatial
reference of either WGS84 (wkid: 4326) or Web Mercator, it is best practice to calculate areas using
geodesicArea(). If the input geometries have a projected coordinate system other than Web Mercator, use
planarArea() instead.
public System.Threading.Tasks.Task<double> GeodesicArea(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon geometry, System.Nullable<dymaptic.GeoBlazor.Core.Objects.GeometryEngineAreaUnit> unit=null);
Parameters
geometry
Polygon
The input polygon
unit
System.Nullable<GeometryEngineAreaUnit>
Measurement unit of the return value. Defaults to the units of the input geometries.
Returns
System.Threading.Tasks.Task<System.Double>
Area of the input geometry.
Remarks
This method only works with WGS84 (wkid: 4326) and Web Mercator spatial references.
GeometryEngine.GeodesicBuffer(Geometry, double, Nullable) Method
Creates geodesic buffer polygons at a specified distance around the input geometries. When calculating distances,
this method takes the curvature of the earth into account, which provides highly accurate results when dealing with
very large geometries and/or geometries that spatially vary on a global scale where one projected coordinate system
could not accurately plot coordinates and measure distances for all the geometries.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> GeodesicBuffer(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double distance, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null);
Parameters
geometry
Geometry
The buffer input geometru
distance
System.Double
The specified distance for buffering.
unit
System.Nullable<LinearUnit>
Measurement unit of the distance. Defaults to the units of the input geometry.
Returns
System.Threading.Tasks.Task<Polygon>
The resulting buffers
Remarks
This method only works with WGS84 (wkid: 4326) and Web Mercator spatial references. In general, if your input
geometries are assigned one of those two spatial references, you should always use geodesicBuffer() to obtain the
most accurate results for those geometries. If needing to buffer points assigned a projected coordinate system
other than Web Mercator, use buffer() instead. If the input geometries have a geographic coordinate system other
than WGS84 (wkid: 4326), use geometryService.buffer().
GeometryEngine.GeodesicBuffer(IEnumerable, IEnumerable, Nullable, Nullable) Method
Creates geodesic buffer polygons at a specified distance around the input geometries. When calculating distances,
this method takes the curvature of the earth into account, which provides highly accurate results when dealing with
very large geometries and/or geometries that spatially vary on a global scale where one projected coordinate system
could not accurately plot coordinates and measure distances for all the geometries.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon[]> GeodesicBuffer(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries, System.Collections.Generic.IEnumerable<double> distances, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null, System.Nullable<bool> unionResults=null);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
The buffer input geometries
distances
System.Collections.Generic.IEnumerable<System.Double>
The specified distance(s) for buffering. The length of the geometry array does not have to equal the length of the
distance array. For example, if you pass an array of four geometries: [g1, g2, g3, g4] and an array with one
distance: [d1], all four geometries will be buffered by the single distance value. If instead you use an array of
three distances: [d1, d2, d3], g1 will be buffered by d1, g2 by d2, and g3 and g4 will both be buffered by d3. The
value of the geometry array will be matched one to one with those in the distance array until the final value of
the distance array is reached, in which case that value will be applied to the remaining geometries.
unit
System.Nullable<LinearUnit>
Measurement unit of the distance(s). Defaults to the units of the input geometries.
unionResults
System.Nullable<System.Boolean>
Determines whether the output geometries should be unioned into a single polygon.
Returns
System.Threading.Tasks.Task<Polygon[]>
The resulting buffers
Remarks
This method only works with WGS84 (wkid: 4326) and Web Mercator spatial references. In general, if your input
geometries are assigned one of those two spatial references, you should always use geodesicBuffer() to obtain the
most accurate results for those geometries. If needing to buffer points assigned a projected coordinate system
other than Web Mercator, use buffer() instead. If the input geometries have a geographic coordinate system other
than WGS84 (wkid: 4326), use geometryService.buffer().
GeometryEngine.GeodesicDensify(Geometry, double, Nullable) Method
Returns a geodesically densified version of the input geometry. Use this function to draw the line(s) of the
geometry along great circles.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> GeodesicDensify(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double maxSegmentLength, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> maxSegmentLengthUnit=null);
Parameters
geometry
Geometry
A polyline or polygon to densify.
maxSegmentLength
System.Double
The maximum segment length allowed (in meters if a maxSegmentLengthUnit is not provided). This must be a positive
value.
maxSegmentLengthUnit
System.Nullable<LinearUnit>
Measurement unit for maxSegmentLength. If not provided, the unit will default to meters.
Returns
System.Threading.Tasks.Task<Geometry>
Returns the densified geometry.
GeometryEngine.GeodesicLength(Geometry, Nullable) Method
Calculates the length of the input geometry. As opposed to planarLength(), geodesicLength() takes into account the
curvature of the earth when performing this calculation. Therefore, when using input geometries with a spatial
reference of either WGS84 (wkid: 4326) or Web Mercator, it is best practice to calculate lengths using
geodesicLength(). If the input geometries have a projected coordinate system other than Web Mercator, use
planarLength() instead.
public System.Threading.Tasks.Task<double> GeodesicLength(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null);
Parameters
geometry
Geometry
The input geometry.
unit
System.Nullable<LinearUnit>
Measurement unit of the return value. Defaults to the units of the input geometry.
Returns
System.Threading.Tasks.Task<System.Double>
Length of the input geometry.
Remarks
This method only works with WGS84 (wkid: 4326) and Web Mercator spatial references.
GeometryEngine.GetExtentCenter(Extent) Method
Retrieves the center point of the extent in map units.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Point?> GetExtentCenter(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
extent
Extent
Returns
System.Threading.Tasks.Task<Point>
GeometryEngine.GetExtentHeight(Extent) Method
Retrieves the height of the extent in map units (the distance between ymin and ymax).
public System.Threading.Tasks.Task<System.Nullable<double>> GetExtentHeight(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
extent
Extent
Returns
System.Threading.Tasks.Task<System.Nullable<System.Double>>
GeometryEngine.GetExtentWidth(Extent) Method
Retrieves the width of the extent in map units (the distance between xmin and xmax).
public System.Threading.Tasks.Task<System.Nullable<double>> GetExtentWidth(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
extent
Extent
Returns
System.Threading.Tasks.Task<System.Nullable<System.Double>>
GeometryEngine.GetPoint(Polygon, int, int) Method
Returns a point specified by a ring and point in the ring.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Point> GetPoint(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, int ringIndex, int pointIndex);
Parameters
polygon
Polygon
The polygon to get the point from.
ringIndex
System.Int32
The index of the ring containing the desired point.
pointIndex
System.Int32
The index of the desired point within the ring.
Returns
System.Threading.Tasks.Task<Point>
Returns the point at the specified ring index and point index.
GeometryEngine.GetPoint(PolyLine, int, int) Method
Returns a point specified by a path and point in the path.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Point> GetPoint(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, int pathIndex, int pointIndex);
Parameters
polyLine
PolyLine
The polyline to get the point from.
pathIndex
System.Int32
The index of the path in the polyline.
pointIndex
System.Int32
The index of the point in the path.
Returns
System.Threading.Tasks.Task<Point>
Returns the point along the Polyline located in the given path and point indices.
GeometryEngine.InsertPoint(Polygon, int, int, Point) Method
Inserts a new point into the polygon.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> InsertPoint(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, int ringIndex, int pointIndex, dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
polygon
Polygon
The polygon to insert the point into.
ringIndex
System.Int32
The index of the ring in which to insert the point.
pointIndex
System.Int32
The index of the point to insert within the ring.
point
Point
The point to insert into the polygon.
Returns
System.Threading.Tasks.Task<Polygon>
Returns a new polygon with the inserted point.
GeometryEngine.InsertPoint(PolyLine, int, int, Point) Method
Inserts a new point into a polyline and returns the modified line.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine> InsertPoint(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, int pathIndex, int pointIndex, dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
polyLine
PolyLine
The polyline to insert the point into.
pathIndex
System.Int32
The index of the path in which to insert a point.
pointIndex
System.Int32
The index of the inserted point in the path.
point
Point
The point to insert into the polyline.
Returns
System.Threading.Tasks.Task<PolyLine>
Returns a new polyline with the inserted point.
GeometryEngine.Intersect(Geometry, Geometry) Method
Creates new geometries from the intersections between two geometries. If the input geometries have different
dimensions (i.e. point = 0; polyline = 1; polygon = 2), then the result’s dimension will be equal to the lowest
dimension of the inputs.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Intersect(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The input geometry.
geometry2
Geometry
The geometry to intersect with geometry1.
Returns
System.Threading.Tasks.Task<Geometry>
The intersections of the geometries.
GeometryEngine.Intersect(IEnumerable, Geometry) Method
Creates new geometries from the intersections between two geometries. If the input geometries have different
dimensions (i.e. point = 0; polyline = 1; polygon = 2), then the result’s dimension will be equal to the lowest
dimension of the inputs. The table below describes the expected output for various combinations of geometry types.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> Intersect(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometries1
System.Collections.Generic.IEnumerable<Geometry>
The input array of geometries.
geometry2
Geometry
The geometry to intersect with geometries1.
Returns
System.Threading.Tasks.Task<Geometry[]>
The intersections of the geometries.
GeometryEngine.Intersects(Geometry, Geometry) Method
Indicates if one geometry intersects another geometry.
public System.Threading.Tasks.Task<bool> Intersects(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The geometry that is tested for the intersects relationship to the other geometry.
geometry2
Geometry
The geometry being intersected.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the input geometries intersect each other.
GeometryEngine.IsClockwise(Polygon, Point[]) Method
Checks if a Polygon ring is clockwise
public System.Threading.Tasks.Task<bool> IsClockwise(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, dymaptic.GeoBlazor.Core.Components.Geometries.Point[] ring);
Parameters
polygon
Polygon
The polygon to check the ring on.
A polygon ring defined as an array of Points. The first and last coordinates/points in the ring must be the same.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the ring is clockwise and false for counterclockwise.
GeometryEngine.IsClockwise(Polygon, MapPath) Method
Checks if a Polygon ring is clockwise
public System.Threading.Tasks.Task<bool> IsClockwise(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, dymaptic.GeoBlazor.Core.Objects.MapPath ring);
Parameters
polygon
Polygon
The polygon to check the ring on.
ring
MapPath
A polygon ring defined as a MapPath. The first and last coordinates/points in the ring must be the same.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the ring is clockwise and false for counterclockwise.
GeometryEngine.IsSimple(Geometry) Method
Indicates if the given geometry is topologically simple. In a simplified geometry, no polygon rings or polyline
paths will overlap, and no self-intersection will occur.
public System.Threading.Tasks.Task<bool> IsSimple(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry);
Parameters
geometry
Geometry
The input geometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the geometry is topologically simple.
GeometryEngine.NearestCoordinate(Geometry, Point) Method
Finds the coordinate of the geometry that is closest to the specified point.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Objects.NearestPointResult> NearestCoordinate(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Point inputPoint);
Parameters
geometry
Geometry
The geometry to consider.
inputPoint
Point
The point used to search the nearest coordinate in the geometry.
Returns
System.Threading.Tasks.Task<NearestPointResult>
Returns an object containing the nearest coordinate.
GeometryEngine.NearestVertex(Geometry, Point) Method
Finds the vertex on the geometry nearest to the specified point.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Objects.NearestPointResult> NearestVertex(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Point inputPoint);
Parameters
geometry
Geometry
The geometry to consider.
inputPoint
Point
The point used to search the nearest vertex in the geometry.
Returns
System.Threading.Tasks.Task<NearestPointResult>
Returns an object containing the nearest vertex.
GeometryEngine.NearestVertices(Geometry, Point, double, int) Method
Finds all vertices in the given distance from the specified point, sorted from the closest to the furthest and
returns them as an array of Objects.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Objects.NearestPointResult[]> NearestVertices(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, dymaptic.GeoBlazor.Core.Components.Geometries.Point inputPoint, double searchRadius, int maxVertexCountToReturn);
Parameters
geometry
Geometry
The geometry to consider.
inputPoint
Point
The point from which to measure.
searchRadius
System.Double
The distance to search from the inputPoint in the units of the view’s spatial reference.
maxVertexCountToReturn
System.Int32
The maximum number of vertices to return.
Returns
System.Threading.Tasks.Task<NearestPointResult[]>
An array of objects containing the nearest vertices within the given searchRadius.
GeometryEngine.NormalizeExtent(Extent) Method
Returns an array with either one Extent that’s been shifted to within +/- 180 or two Extents if the original extent intersects the International Dateline.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Extent[]> NormalizeExtent(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
extent
Extent
The input extent.
Returns
System.Threading.Tasks.Task<Extent[]>
An array with either one Extent that’s been shifted to within +/- 180 or two Extents if the original extent intersects the International Dateline.
GeometryEngine.NormalizePoint(Point) Method
Modifies the point geometry in-place by shifting the X-coordinate to within +/- 180 span in map units.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Point> NormalizePoint(dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
point
Point
The input point.
Returns
System.Threading.Tasks.Task<Point>
Returns a point with a normalized x-value.
GeometryEngine.Offset(Geometry, double, Nullable, Nullable, Nullable, Nullable) Method
The offset operation creates a geometry that is a constant planar distance from an input polyline or polygon. It is
similar to buffering, but produces a one-sided result.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Offset(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double offsetDistance, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> offsetUnit=null, System.Nullable<dymaptic.GeoBlazor.Core.Model.JoinType> joinType=null, System.Nullable<double> bevelRatio=null, System.Nullable<double> flattenError=null);
Parameters
geometry
Geometry
The geometry to offset.
offsetDistance
System.Double
The planar distance to offset from the input geometry. If offsetDistance > 0, then the offset geometry is
constructed to the right of the oriented input geometry, if offsetDistance = 0, then there is no change in the
geometries, otherwise it is constructed to the left. For a simple polygon, the orientation of outer rings is
clockwise and for inner rings it is counter clockwise. So the “right side” of a simple polygon is always its
inside.
offsetUnit
System.Nullable<LinearUnit>
Measurement unit of the offset distance. Defaults to the units of the input geometries.
joinType
System.Nullable<JoinType>
The JoinType
bevelRatio
System.Nullable<System.Double>
Applicable when joinType = ‘miter’; bevelRatio is multiplied by the offset distance and the result determines how
far a mitered offset intersection can be located before it is beveled.
flattenError
System.Nullable<System.Double>
Applicable when joinType = ‘round’; flattenError determines the maximum distance of the resulting segments compared
to the true circular arc. The algorithm never produces more than around 180 vertices for each round join.
Returns
System.Threading.Tasks.Task<Geometry>
The offset geometry.
GeometryEngine.Offset(IEnumerable, double, Nullable, Nullable, Nullable, Nullable) Method
The offset operation creates a geometry that is a constant planar distance from an input polyline or polygon. It is
similar to buffering, but produces a one-sided result.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> Offset(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries, double offsetDistance, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> offsetUnit=null, System.Nullable<dymaptic.GeoBlazor.Core.Model.JoinType> joinType=null, System.Nullable<double> bevelRatio=null, System.Nullable<double> flattenError=null);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
The geometries to offset.
offsetDistance
System.Double
The planar distance to offset from the input geometry. If offsetDistance > 0, then the offset geometry is
constructed to the right of the oriented input geometry, if offsetDistance = 0, then there is no change in the
geometries, otherwise it is constructed to the left. For a simple polygon, the orientation of outer rings is
clockwise and for inner rings it is counter clockwise. So the “right side” of a simple polygon is always its
inside.
offsetUnit
System.Nullable<LinearUnit>
Measurement unit of the offset distance. Defaults to the units of the input geometries.
joinType
System.Nullable<JoinType>
The JoinType
bevelRatio
System.Nullable<System.Double>
Applicable when joinType = ‘miter’; bevelRatio is multiplied by the offset distance and the result determines how
far a mitered offset intersection can be located before it is beveled.
flattenError
System.Nullable<System.Double>
Applicable when joinType = ‘round’; flattenError determines the maximum distance of the resulting segments compared
to the true circular arc. The algorithm never produces more than around 180 vertices for each round join.
Returns
System.Threading.Tasks.Task<Geometry[]>
The offset geometries.
GeometryEngine.OffsetExtent(Extent, double, double, double) Method
Modifies the extent geometry in-place with X and Y offsets in map units.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Extent> OffsetExtent(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent, double dx, double dy, double dz=0.0);
Parameters
extent
Extent
The input extent.
The offset distance in map units for the X-coordinate.
The offset distance in map units for the Y-coordinate.
The offset distance in map units for the Z-coordinate.
Returns
System.Threading.Tasks.Task<Extent>
GeometryEngine.Overlaps(Geometry, Geometry) Method
Indicates if one geometry overlaps another geometry.
public System.Threading.Tasks.Task<bool> Overlaps(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The base geometry that is tested for the “overlaps” relationship with the other geometry.
geometry2
Geometry
The comparison geometry that is tested for the “overlaps” relationship with the other geometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the two geometries overlap.
GeometryEngine.PlanarArea(Polygon, Nullable) Method
Calculates the area of the input geometry. As opposed to geodesicArea(), planarArea() performs this calculation
using projected coordinates and does not take into account the earth’s curvature. When using input geometries with
a spatial reference of either WGS84 (wkid: 4326) or Web Mercator, it is best practice to calculate areas using
geodesicArea(). If the input geometries have a projected coordinate system other than Web Mercator, use
planarArea() instead.
public System.Threading.Tasks.Task<double> PlanarArea(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon geometry, System.Nullable<dymaptic.GeoBlazor.Core.Objects.GeometryEngineAreaUnit> unit=null);
Parameters
geometry
Polygon
The input polygon.
unit
System.Nullable<GeometryEngineAreaUnit>
Measurement unit of the return value. Defaults to the units of the input geometries.
Returns
System.Threading.Tasks.Task<System.Double>
The area of the input geometry.
GeometryEngine.PlanarLength(Geometry, Nullable) Method
Calculates the length of the input geometry. As opposed to geodesicLength(), planarLength() uses projected
coordinates and does not take into account the curvature of the earth when performing this calculation. When using
input geometries with a spatial reference of either WGS84 (wkid: 4326) or Web Mercator, it is best practice to
calculate lengths using geodesicLength(). If the input geometries have a projected coordinate system other than Web
Mercator, use planarLength() instead.
public System.Threading.Tasks.Task<double> PlanarLength(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, System.Nullable<dymaptic.GeoBlazor.Core.Objects.LinearUnit> unit=null);
Parameters
geometry
Geometry
The input geometry.
unit
System.Nullable<LinearUnit>
Measurement unit of the return value. Defaults to the units of the input geometries.
Returns
System.Threading.Tasks.Task<System.Double>
The length of the input geometry.
GeometryEngine.PolygonFromExtent(Extent) Method
Converts the given Extent to a Polygon instance. This is useful for scenarios in which you would like to display an area of interest, which is typically defined by an Extent or bounding box, as a polygon with a fill symbol in the view. Some geoprocessing tools require input geometries to be of a Polygon type and not an Extent.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> PolygonFromExtent(dymaptic.GeoBlazor.Core.Components.Geometries.Extent extent);
Parameters
extent
Extent
An extent object to convert to a polygon.
Returns
System.Threading.Tasks.Task<Polygon>
A polygon instance representing the given extent.
GeometryEngine.Relate(Geometry, Geometry, string) Method
Indicates if the given DE-9IM relation is true for the two geometries.
public System.Threading.Tasks.Task<bool> Relate(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2, string relation);
Parameters
geometry1
Geometry
The first geometry for the relation.
geometry2
Geometry
The second geometry for the relation.
relation
System.String
The Dimensionally Extended 9 Intersection Model (DE-9IM) 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
DE-9IM 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 DE-9IM string codes are valid for testing whether a polygon geometry completely contains a
line geometry: TTTFFTFFT (Boolean), ‘T****FF’ (ignore irrelevant intersections), or ‘102FFFF’ (dimension
form). Each returns the same result. See
this article and
this
ArcGIS help page
for more information about the DE-9IM model and how string codes are constructed.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if the relation of the input geometries is accurate.
GeometryEngine.RemovePath(PolyLine, int) Method
Removes a path from the Polyline. The index specifies which path to remove.
public System.Threading.Tasks.Task<(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine PolyLine,dymaptic.GeoBlazor.Core.Components.Geometries.Point[] Path)> RemovePath(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, int index);
Parameters
polyLine
PolyLine
The polyline to remove the path from.
index
System.Int32
The index of the path to remove.
Returns
System.Threading.Tasks.Task<<PolyLine,Point[]>>
Returns an object with the modified polyline and the removed path.
GeometryEngine.RemovePoint(Polygon, int, int) Method
Removes a point from the polygon at the given pointIndex within the ring identified by the given ringIndex.
public System.Threading.Tasks.Task<(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon Polygon,dymaptic.GeoBlazor.Core.Components.Geometries.Point Point)> RemovePoint(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, int ringIndex, int pointIndex);
Parameters
polygon
Polygon
The polyline to remove the point from.
ringIndex
System.Int32
The index of the ring containing the point to remove.
pointIndex
System.Int32
The index of the point to remove within the ring.
Returns
System.Threading.Tasks.Task<<Polygon,Point>>
Returns an object with the modified polygon and the removed point.
GeometryEngine.RemovePoint(PolyLine, int, int) Method
Removes a point from the polyline at the given pointIndex within the path identified by the given pathIndex.
public System.Threading.Tasks.Task<(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine PolyLine,dymaptic.GeoBlazor.Core.Components.Geometries.Point Point)> RemovePoint(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, int pathIndex, int pointIndex);
Parameters
polyLine
PolyLine
The polyline to remove the point from.
pathIndex
System.Int32
The index of the path in which to remove a point.
pointIndex
System.Int32
The index of the point in the path to remove.
Returns
System.Threading.Tasks.Task<<PolyLine,Point>>
Returns an object with the modified polyline and the removed point.
GeometryEngine.RemoveRing(Polygon, int) Method
Removes a ring from the Polygon. The index specifies which ring to remove.
public System.Threading.Tasks.Task<(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon Polygon,dymaptic.GeoBlazor.Core.Components.Geometries.Point[] Ring)> RemoveRing(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, int index);
Parameters
polygon
Polygon
The polygon to remove the ring from.
index
System.Int32
The index of the ring to remove.
Returns
System.Threading.Tasks.Task<<Polygon,Point[]>>
Returns an object with the modified polygon and the removed ring.
GeometryEngine.Rotate(Geometry, double, Point) Method
Rotates a geometry counterclockwise by the specified number of degrees. Rotation is around the centroid, or a given
rotation point.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Rotate(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry, double angle, dymaptic.GeoBlazor.Core.Components.Geometries.Point rotationOrigin);
Parameters
geometry
Geometry
The geometry to rotate.
angle
System.Double
The rotation angle in degrees.
rotationOrigin
Point
Point to rotate the geometry around. Defaults to the centroid of the geometry.
Returns
System.Threading.Tasks.Task<Geometry>
The rotated geometry.
GeometryEngine.SetPoint(Polygon, int, int, Point) Method
Updates a point in a polygon and returns the modified polygon.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Polygon> SetPoint(dymaptic.GeoBlazor.Core.Components.Geometries.Polygon polygon, int ringIndex, int pointIndex, dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
polygon
Polygon
The polygon to update the point in.
ringIndex
System.Int32
The index of the ring containing the point to update.
pointIndex
System.Int32
The index of the point to update within the ring.
point
Point
The new point to update the polygon with.
Returns
System.Threading.Tasks.Task<Polygon>
Returns a new polygon with the updated point.
GeometryEngine.SetPoint(PolyLine, int, int, Point) Method
Updates a point in a polyline and returns the modified polyline.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine> SetPoint(dymaptic.GeoBlazor.Core.Components.Geometries.PolyLine polyLine, int pathIndex, int pointIndex, dymaptic.GeoBlazor.Core.Components.Geometries.Point point);
Parameters
polyLine
PolyLine
The polyline to update the point in.
pathIndex
System.Int32
The index of the path in which to update a point.
pointIndex
System.Int32
The index of the point in the path to update.
point
Point
The new point to update the polyline with.
Returns
System.Threading.Tasks.Task<PolyLine>
Returns a new polyline with the updated point.
GeometryEngine.Simplify(Geometry) Method
Performs the simplify operation on the geometry, which alters the given geometries to make their definitions
topologically legal with respect to their geometry type. At the end of a simplify operation, no polygon rings or
polyline paths will overlap, and no self-intersection will occur.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Simplify(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry);
Parameters
geometry
Geometry
The geometry to be simplified.
Returns
System.Threading.Tasks.Task<Geometry>
The simplified geometry.
GeometryEngine.SymmetricDifference(Geometry, Geometry) Method
Creates the symmetric difference of two geometries. The symmetric difference includes the parts that are in either
of the sets, but not in both.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> SymmetricDifference(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry leftGeometry, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry rightGeometry);
Parameters
leftGeometry
Geometry
One of the Geometry instances in the XOR operation.
rightGeometry
Geometry
One of the Geometry instances in the XOR operation.
Returns
System.Threading.Tasks.Task<Geometry>
The symmetric differences of the two geometries.
GeometryEngine.SymmetricDifference(IEnumerable, Geometry) Method
Creates the symmetric difference of two geometries. The symmetric difference includes the parts that are in either
of the sets, but not in both.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[]> SymmetricDifference(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> leftGeometries, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry rightGeometry);
Parameters
leftGeometries
System.Collections.Generic.IEnumerable<Geometry>
One of the Geometry instances in the XOR operation.
rightGeometry
Geometry
One of the Geometry instances in the XOR operation.
Returns
System.Threading.Tasks.Task<Geometry[]>
The symmetric differences of the two geometries.
GeometryEngine.ToArcGisJson(T) Method
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
public System.Threading.Tasks.Task<string> ToArcGisJson<T>(T geometry)
where T : dymaptic.GeoBlazor.Core.Components.Geometries.Geometry;
Type parameters
T
Parameters
geometry
T
The geometry to convert.
Returns
System.Threading.Tasks.Task<System.String>
The ArcGIS portal JSON representation of an instance of this class.
GeometryEngine.Touches(Geometry, Geometry) Method
Indicates if one geometry touches another geometry.
public System.Threading.Tasks.Task<bool> Touches(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry1, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry geometry2);
Parameters
geometry1
Geometry
The geometry to test the “touches” relationship with the other geometry.
geometry2
Geometry
The geometry to be touched.
Returns
System.Threading.Tasks.Task<System.Boolean>
When true, geometry1 touches geometry2.
GeometryEngine.Union(Geometry[]) Method
All inputs must be of the same type of geometries and share one spatial reference.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Union(params dymaptic.GeoBlazor.Core.Components.Geometries.Geometry[] geometries);
Parameters
An array of Geometries to union.
Returns
System.Threading.Tasks.Task<Geometry>
The union of the geometries
GeometryEngine.Union(IEnumerable) Method
All inputs must be of the same type of geometries and share one spatial reference.
public System.Threading.Tasks.Task<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> Union(System.Collections.Generic.IEnumerable<dymaptic.GeoBlazor.Core.Components.Geometries.Geometry> geometries);
Parameters
geometries
System.Collections.Generic.IEnumerable<Geometry>
An array of Geometries to union.
Returns
System.Threading.Tasks.Task<Geometry>
The union of the geometries
GeometryEngine.Within(Geometry, Geometry) Method
Indicates if one geometry is within another geometry.
public System.Threading.Tasks.Task<bool> Within(dymaptic.GeoBlazor.Core.Components.Geometries.Geometry innerGeometry, dymaptic.GeoBlazor.Core.Components.Geometries.Geometry outerGeometry);
Parameters
innerGeometry
Geometry
The base geometry that is tested for the “within” relationship to the other geometry.
outerGeometry
Geometry
The comparison geometry that is tested for the “contains” relationship to the other geometry.
Returns
System.Threading.Tasks.Task<System.Boolean>
Returns true if innerGeometry is within outerGeometry.