ArcGIS Runtime SDK for iOS: AGSGeometryEngine.h Source File
ArcGIS Runtime SDK for iOS  100.15
AGSGeometryEngine.h
Go to the documentation of this file.
1 /*
2  COPYRIGHT 2022 ESRI
3 
4  All rights reserved under the copyright laws of the United States
5  and applicable international laws, treaties, and conventions.
6 
7  This material is licensed for use under the Esri Master License
8  Agreement (MLA), and is bound by the terms of that agreement.
9  You may redistribute and use this code without modification,
10  provided you adhere to the terms of the MLA and include this
11  copyright notice.
12 
13  See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
14 
15  For additional information, contact:
16  Environmental Systems Research Institute, Inc.
17  Attn: Contracts and Legal Services Department
18  380 New York Street
19  Redlands, California, 92373
20  USA
21 
22  email: contracts@esri.com
23  */
24 
25 #import <Foundation/Foundation.h>
26 #import <ArcGIS/AGSObject.h>
27 
28 @class AGSSpatialReference;
29 @class AGSGeometry;
30 @class AGSPolygon;
31 @class AGSEnvelope;
32 @class AGSPolyline;
33 @class AGSPoint;
34 @class AGSProximityResult;
35 @class AGSUnit;
36 @class AGSAreaUnit;
37 @class AGSLinearUnit;
38 @class AGSAngularUnit;
43 @class AGSMultipart;
45 
50 typedef NS_ENUM(NSInteger, AGSGeometryOffsetType) {
55 };
56 
62 typedef NS_ENUM(NSInteger, AGSGeodeticCurveType) {
68 };
69 
74 typedef NS_OPTIONS(NSInteger, AGSGeometryExtendOption) {
81 };
82  //Required for Globals API doc
84 
105 
106 
107 #pragma mark - Geodetic/Geodesic Operators
108 
119 + (double)geodeticAreaOfGeometry:(AGSGeometry*)geometry areaUnit:(AGSAreaUnit*)areaUnit curveType:(AGSGeodeticCurveType)curveType;
120 
138 + (nullable AGSPolygon*)geodeticBufferGeometry:(AGSGeometry*)geometry distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType;
139 
159 + (nullable NSArray<AGSGeometry*>*)geodeticBufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType unionResults:(BOOL)unionResults;
160 
169 + (nullable AGSGeometry*)geodeticDensifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
170 
180 + (nullable AGSGeodeticDistanceResult*)geodeticDistanceBetweenPoint1:(AGSPoint*)point1 point2:(AGSPoint*)point2 distanceUnit:(AGSLinearUnit*)distanceUnit azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
181 
187 + (nullable AGSGeometry*)geodesicEllipseWithParameters:(AGSGeodesicEllipseParameters*)params;
188 
202 + (double)geodeticLengthOfGeometry:(AGSGeometry*)geometry lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
203 
218 + (nullable NSArray<AGSPoint*>*)geodeticMovePoints:(NSArray<AGSPoint*>*)points distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit azimuth:(double)azimuth azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
219 
235 + (nullable AGSProximityResult *)geodeticNearestCoordinateInGeometry:(AGSGeometry *)geometry
236  point:(AGSPoint *)point
237  maxDeviation:(double)maxDeviation
238  deviationUnit:(nullable AGSLinearUnit *)deviationUnit;
239 
245 + (nullable AGSGeometry*)geodesicSectorWithParameters:(AGSGeodesicSectorParameters*)params;
246 
247 
248 #pragma mark - Topological Query Operators
249 
255 + (BOOL)geometry:(AGSGeometry*)geometry1 containsGeometry:(AGSGeometry*)geometry2;
256 
262 + (BOOL)geometry:(AGSGeometry*)geometry1 crossesGeometry:(AGSGeometry*)geometry2;
263 
275 + (nullable NSArray<AGSGeometry *> *)cutGeometry:(AGSGeometry*)geometry withCutter:(AGSPolyline*)cutter;
276 
282 + (BOOL)geometry:(AGSGeometry*)geometry1 disjointToGeometry:(AGSGeometry*)geometry2;
283 
289 + (BOOL)geometry:(AGSGeometry*)geometry1 equalsGeometry:(AGSGeometry*)geometry2;
290 
296 + (BOOL)geometry:(AGSGeometry*)geometry1 intersectsGeometry:(AGSGeometry*)geometry2;
297 
303 + (BOOL)geometryIsSimple:(AGSGeometry*)geometry;
304 
312 + (BOOL)geometry:(AGSGeometry*)geometry1 overlapsGeometry:(AGSGeometry*)geometry2;
313 
329 + (BOOL)geometry:(AGSGeometry*)geometry1 relatesToGeometry:(AGSGeometry*)geometry2 byRelation:(NSString*)relation;
330 
336 + (BOOL)geometry:(AGSGeometry*)geometry1 touchesGeometry:(AGSGeometry*)geometry2;
337 
343 + (BOOL)geometry:(AGSGeometry*)geometry1 withinGeometry:(AGSGeometry*)geometry2;
344 
345 
346 #pragma mark - Topological Analysis Operators
347 
366 + (double)areaOfGeometry:(AGSGeometry*)geometry;
367 
375 + (nullable AGSGeometry*)boundaryOfGeometry:(AGSGeometry*)geometry;
376 
392 + (nullable AGSPolygon*)bufferGeometry:(AGSGeometry*)geometry byDistance:(double)distance;
393 
409 + (nullable NSArray<AGSGeometry*>*)bufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances unionResults:(BOOL)unionResults;
410 
419 + (nullable AGSGeometry*)clipGeometry:(AGSGeometry*)geometry withEnvelope:(AGSEnvelope*)envelope;
420 
431 + (nullable AGSEnvelope*)combineExtentsOfGeometry:(AGSGeometry*)geometry1 andGeometry:(AGSGeometry*)geometry2;
432 
442 + (nullable AGSEnvelope*)combineExtentsOfGeometries:(NSArray<AGSGeometry*>*)geometries;
443 
449 + (nullable AGSGeometry*)convexHullForGeometry:(AGSGeometry*)geometry;
450 
459 + (nullable NSArray<AGSGeometry*>*)convexHullForGeometries:(NSArray<AGSGeometry*>*)geometries mergeInputs:(BOOL)mergeInputs;
460 
471 + (nullable AGSGeometry*)densifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength;
472 
481 + (nullable AGSGeometry*)differenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
482 
494 + (double)distanceBetweenGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
495 
496 
509 + (nullable AGSPolyline*)extendPolyline:(AGSPolyline*)polyline withPolyline:(AGSPolyline*)extender options:(AGSGeometryExtendOption)options;
510 
519 + (nullable AGSGeometry*)generalizeGeometry:(AGSGeometry*)geometry maxDeviation:(double)maxDeviation removeDegenerateParts:(BOOL)removeDegenerateParts;
520 
529 + (nullable AGSGeometry*)intersectionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
530 
531 
561 + (nullable NSArray*)intersectionsOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
562 
576 + (double)lengthOfGeometry:(AGSGeometry*)geometry;
577 
585 + (AGSGeometry*)geometryByRemovingMFromGeometry:(AGSGeometry*)geometry;
586 
587 
595 + (AGSGeometry*)geometryByRemovingZFromGeometry:(AGSGeometry*)geometry;
596 
597 
605 + (AGSGeometry*)geometryByRemovingZAndMFromGeometry:(AGSGeometry*)geometry;
606 
617 + (nullable AGSMultipart*)reshapeGeometry:(AGSMultipart*)geometry withPolyline:(AGSPolyline*)reshaper;
618 
629 + (AGSGeometry*)geometryBySettingM:(double)m inGeometry:(AGSGeometry*)geometry;
630 
641 + (AGSGeometry*)geometryBySettingZ:(double)z inGeometry:(AGSGeometry*)geometry;
642 
654 + (AGSGeometry*)geometryBySettingZ:(double)z M:(double)m inGeometry:(AGSGeometry*)geometry;
655 
665 + (nullable AGSGeometry*)simplifyGeometry:(AGSGeometry*)geometry;
666 
674 + (nullable AGSGeometry*)symmetricDifferenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
675 
684 + (nullable AGSGeometry*)unionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
685 
697 + (nullable AGSGeometry*)unionGeometries:(NSArray<AGSGeometry*>*)geometries;
698 
699 #pragma mark - Other
700 
715 + (nullable NSArray<AGSPolygon*>*)autoCompleteForExistingBoundaries:(NSArray<AGSGeometry*>*)existingBoundaries newBoundaries:(NSArray<AGSPolyline*>*)newBoundaries;
716 
725 + (nullable AGSPoint*)labelPointForPolygon:(AGSPolygon*)polygon;
726 
735 + (nullable AGSGeometry*)normalizeCentralMeridianOfGeometry:(AGSGeometry*)geometry;
736 
756 + (nullable AGSGeometry*)offsetGeometry:(AGSGeometry*)geometry distance:(double)distance offsetType:(AGSGeometryOffsetType)offsetType bevelRatio:(double)bevelRatio flattenError:(double)flattenError;
757 
777 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry*)geometry toSpatialReference:(AGSSpatialReference*)spatialReference;
778 
795 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry *)geometry
796  toSpatialReference:(AGSSpatialReference *)toSpatialReference
797  datumTransformation:(nullable AGSDatumTransformation *)datumTransformation;
798 
822 + (nullable AGSProximityResult*)nearestCoordinateInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
823 
835 + (nullable AGSProximityResult*)nearestVertexInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
836 
845 + (nullable AGSPoint *)pointAlongPolyline:(AGSPolyline *)polyline distance:(double)distance;
846 
859 +(double)fractionAlongLine:(AGSPolyline *)line
860  toPoint:(AGSPoint *)point
861  tolerance:(double)tolerance;
862 
863 
864 @end
AGSGeodeticCurveType
Definition: AGSGeometryEngine.h:62
@ AGSGeodeticCurveTypeGeodesic
Definition: AGSGeometryEngine.h:63
@ AGSGeodeticCurveTypeNormalSection
Definition: AGSGeometryEngine.h:66
@ AGSGeodeticCurveTypeShapePreserving
Definition: AGSGeometryEngine.h:67
@ AGSGeodeticCurveTypeLoxodrome
Definition: AGSGeometryEngine.h:64
@ AGSGeodeticCurveTypeGreatElliptic
Definition: AGSGeometryEngine.h:65
AGSGeometryExtendOption
Definition: AGSGeometryEngine.h:74
@ AGSGeometryExtendOptionRelocateEnds
Definition: AGSGeometryEngine.h:76
@ AGSGeometryExtendOptionDefault
Definition: AGSGeometryEngine.h:75
@ AGSGeometryExtendOptionKeepEndAttributes
Definition: AGSGeometryEngine.h:77
@ AGSGeometryExtendOptionDoNotExtendFromStartPoint
Definition: AGSGeometryEngine.h:79
@ AGSGeometryExtendOptionDoNotExtendFromEndPoint
Definition: AGSGeometryEngine.h:80
@ AGSGeometryExtendOptionNoEndAttributes
Definition: AGSGeometryEngine.h:78
AGSGeometryOffsetType
Definition: AGSGeometryEngine.h:50
@ AGSGeometryOffsetTypeMitered
Definition: AGSGeometryEngine.h:51
@ AGSGeometryOffsetTypeSquared
Definition: AGSGeometryEngine.h:54
@ AGSGeometryOffsetTypeRounded
Definition: AGSGeometryEngine.h:53
@ AGSGeometryOffsetTypeBevelled
Definition: AGSGeometryEngine.h:52
Defines an angular unit of measurement.
Definition: AGSAngularUnit.h:54
Defines an area unit of measurement.
Definition: AGSAreaUnit.h:61
A base class for transformation between two coordinate systems that have different datums.
Definition: AGSDatumTransformation.h:53
A geometry that represents a rectangular shape.
Definition: AGSEnvelope.h:55
Parameters for geodesicEllipseWithParameters: (AGSGeometryEngine)
Definition: AGSGeodesicEllipseParameters.h:44
Parameters for geodesicSectorWithParameters: (AGSGeometryEngine)
Definition: AGSGeodesicSectorParameters.h:42
A result of AGSGeometryEngine::geodeticDistanceBetweenPoint1:point2:inUnits: method.
Definition: AGSGeodeticDistanceResult.h:41
A class providing methods for operating on AGSGeometry objects.
Definition: AGSGeometryEngine.h:105
Base class for all classes that represent geometric shapes.
Definition: AGSGeometry.h:121
Defines a linear unit of measurement.
Definition: AGSLinearUnit.h:60
Defines common members for polyline and polygon multipart geometries.
Definition: AGSMultipart.h:53
Mutable collection of points of a multipoint geometry builder.
Definition: AGSMutablePointCollection.h:59
Definition: AGSObject.h:28
A location defined by x and y (and optionally z) coordinates.
Definition: AGSPoint.h:73
A multipart shape used to represent an area.
Definition: AGSPolygon.h:78
A multipart linear shape.
Definition: AGSPolyline.h:68
The result of a proximity search.
Definition: AGSProximityResult.h:40
Represents the spatial reference of a geometry.
Definition: AGSSpatialReference.h:49
Defines a unit of measurement.
Definition: AGSUnit.h:68