ArcGIS Runtime SDK for iOS: AGSGeometryEngine.h Source File
ArcGIS Runtime SDK for iOS  100.11
AGSGeometryEngine.h
Go to the documentation of this file.
1 /*
2  COPYRIGHT 2021 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 
117 + (double)geodeticAreaOfGeometry:(AGSGeometry*)geometry areaUnit:(AGSAreaUnit*)areaUnit curveType:(AGSGeodeticCurveType)curveType;
118 
128 + (nullable AGSPolygon*)geodeticBufferGeometry:(AGSGeometry*)geometry distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType;
129 
141 + (nullable NSArray<AGSGeometry*>*)geodeticBufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType unionResults:(BOOL)unionResults;
142 
151 + (nullable AGSGeometry*)geodeticDensifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
152 
162 + (nullable AGSGeodeticDistanceResult*)geodeticDistanceBetweenPoint1:(AGSPoint*)point1 point2:(AGSPoint*)point2 distanceUnit:(AGSLinearUnit*)distanceUnit azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
163 
169 + (nullable AGSGeometry*)geodesicEllipseWithParameters:(AGSGeodesicEllipseParameters*)params;
170 
183 + (double)geodeticLengthOfGeometry:(AGSGeometry*)geometry lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
184 
197 + (nullable NSArray<AGSPoint*>*)geodeticMovePoints:(NSArray<AGSPoint*>*)points distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit azimuth:(double)azimuth azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
198 
204 + (nullable AGSGeometry*)geodesicSectorWithParameters:(AGSGeodesicSectorParameters*)params;
205 
206 
207 #pragma mark - Topological Query Operators
208 
212 + (BOOL)geometry:(AGSGeometry*)geometry1 containsGeometry:(AGSGeometry*)geometry2;
213 
217 + (BOOL)geometry:(AGSGeometry*)geometry1 crossesGeometry:(AGSGeometry*)geometry2;
218 
230 + (nullable NSArray<AGSGeometry *> *)cutGeometry:(AGSGeometry*)geometry withCutter:(AGSPolyline*)cutter;
231 
235 + (BOOL)geometry:(AGSGeometry*)geometry1 disjointToGeometry:(AGSGeometry*)geometry2;
236 
240 + (BOOL)geometry:(AGSGeometry*)geometry1 equalsGeometry:(AGSGeometry*)geometry2;
241 
245 + (BOOL)geometry:(AGSGeometry*)geometry1 intersectsGeometry:(AGSGeometry*)geometry2;
246 
250 + (BOOL)geometryIsSimple:(AGSGeometry*)geometry;
251 
258 + (BOOL)geometry:(AGSGeometry*)geometry1 overlapsGeometry:(AGSGeometry*)geometry2;
259 
274 + (BOOL)geometry:(AGSGeometry*)geometry1 relatesToGeometry:(AGSGeometry*)geometry2 byRelation:(NSString*)relation;
275 
279 + (BOOL)geometry:(AGSGeometry*)geometry1 touchesGeometry:(AGSGeometry*)geometry2;
280 
284 + (BOOL)geometry:(AGSGeometry*)geometry1 withinGeometry:(AGSGeometry*)geometry2;
285 
286 
287 #pragma mark - Topological Analysis Operators
288 
305 + (double)areaOfGeometry:(AGSGeometry*)geometry;
306 
312 + (nullable AGSGeometry*)boundaryOfGeometry:(AGSGeometry*)geometry;
313 
327 + (nullable AGSPolygon*)bufferGeometry:(AGSGeometry*)geometry byDistance:(double)distance;
328 
343 + (nullable NSArray<AGSGeometry*>*)bufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances unionResults:(BOOL)unionResults;
344 
351 + (nullable AGSGeometry*)clipGeometry:(AGSGeometry*)geometry withEnvelope:(AGSEnvelope*)envelope;
352 
361 + (nullable AGSEnvelope*)combineExtentsOfGeometry:(AGSGeometry*)geometry1 andGeometry:(AGSGeometry*)geometry2;
362 
370 + (nullable AGSEnvelope*)combineExtentsOfGeometries:(NSArray<AGSGeometry*>*)geometries;
371 
377 + (nullable AGSGeometry*)convexHullForGeometry:(AGSGeometry*)geometry;
378 
387 + (nullable NSArray<AGSGeometry*>*)convexHullForGeometries:(NSArray<AGSGeometry*>*)geometries mergeInputs:(BOOL)mergeInputs;
388 
396 + (nullable AGSGeometry*)densifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength;
397 
404 + (nullable AGSGeometry*)differenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
405 
417 + (double)distanceBetweenGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
418 
419 
432 + (nullable AGSPolyline*)extendPolyline:(AGSPolyline*)polyline withPolyline:(AGSPolyline*)extender options:(AGSGeometryExtendOption)options;
433 
440 + (nullable AGSGeometry*)generalizeGeometry:(AGSGeometry*)geometry maxDeviation:(double)maxDeviation removeDegenerateParts:(BOOL)removeDegenerateParts;
441 
448 + (nullable AGSGeometry*)intersectionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
449 
450 + (nullable NSArray*)intersectionsOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
451 
464 + (double)lengthOfGeometry:(AGSGeometry*)geometry;
465 
471 + (AGSGeometry*)geometryByRemovingMFromGeometry:(AGSGeometry*)geometry;
472 
473 
479 + (AGSGeometry*)geometryByRemovingZFromGeometry:(AGSGeometry*)geometry;
480 
481 
487 + (AGSGeometry*)geometryByRemovingZAndMFromGeometry:(AGSGeometry*)geometry;
488 
499 + (nullable AGSMultipart*)reshapeGeometry:(AGSMultipart*)geometry withPolyline:(AGSPolyline*)reshaper;
500 
509 + (AGSGeometry*)geometryBySettingM:(double)m inGeometry:(AGSGeometry*)geometry;
510 
519 + (AGSGeometry*)geometryBySettingZ:(double)z inGeometry:(AGSGeometry*)geometry;
520 
530 + (AGSGeometry*)geometryBySettingZ:(double)z M:(double)m inGeometry:(AGSGeometry*)geometry;
531 
539 + (nullable AGSGeometry*)simplifyGeometry:(AGSGeometry*)geometry;
540 
548 + (nullable AGSGeometry*)symmetricDifferenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
549 
556 + (nullable AGSGeometry*)unionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
557 
568 + (nullable AGSGeometry*)unionGeometries:(NSArray<AGSGeometry*>*)geometries;
569 
570 #pragma mark - Other
571 
586 + (nullable NSArray<AGSPolygon*>*)autoCompleteForExistingBoundaries:(NSArray<AGSGeometry*>*)existingBoundaries newBoundaries:(NSArray<AGSPolyline*>*)newBoundaries;
587 
594 + (nullable AGSPoint*)labelPointForPolygon:(AGSPolygon*)polygon;
595 
602 + (nullable AGSGeometry*)normalizeCentralMeridianOfGeometry:(AGSGeometry*)geometry;
603 
623 + (nullable AGSGeometry*)offsetGeometry:(AGSGeometry*)geometry distance:(double)distance offsetType:(AGSGeometryOffsetType)offsetType bevelRatio:(double)bevelRatio flattenError:(double)flattenError;
624 
640 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry*)geometry toSpatialReference:(AGSSpatialReference*)spatialReference;
641 
652 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry *)geometry
653  toSpatialReference:(AGSSpatialReference *)toSpatialReference
654  datumTransformation:(nullable AGSDatumTransformation *)datumTransformation;
655 
663 + (nullable AGSProximityResult*)nearestCoordinateInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
664 
672 + (nullable AGSProximityResult*)nearestVertexInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
673 
680 + (nullable AGSPoint *)pointAlongPolyline:(AGSPolyline *)polyline distance:(double)distance;
681 
692 +(double)fractionAlongLine:(AGSPolyline *)line
693  toPoint:(AGSPoint *)point
694  tolerance:(double)tolerance;
695 
696 
697 @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:52
Defines an area unit of measurement.
Definition: AGSAreaUnit.h:64
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:58
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:46
Defines a unit of measurement.
Definition: AGSUnit.h:68