ArcGIS Runtime SDK for iOS: AGSGeometryEngine.h Source File
ArcGIS Runtime SDK for iOS  100.9
AGSGeometryEngine.h
Go to the documentation of this file.
1 /*
2  COPYRIGHT 1995-2020 ESRI
3 
4  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
5  Unpublished material - all rights reserved under the
6  Copyright Laws of the United States and applicable international
7  laws, treaties, and conventions.
8 
9  For additional information, contact:
10  Environmental Systems Research Institute, Inc.
11  Attn: Contracts and Legal Services Department
12  380 New York Street
13  Redlands, California, 92373
14  USA
15 
16  email: contracts@esri.com
17  */
18 
19 #import <ArcGIS/AGSObject.h>
20 
21 @class AGSSpatialReference;
22 @class AGSGeometry;
23 @class AGSPolygon;
24 @class AGSEnvelope;
25 @class AGSPolyline;
26 @class AGSPoint;
27 @class AGSProximityResult;
28 @class AGSUnit;
29 @class AGSAreaUnit;
30 @class AGSLinearUnit;
31 @class AGSAngularUnit;
36 @class AGSMultipart;
38 
43 typedef NS_ENUM(NSInteger, AGSGeometryOffsetType) {
48 };
49 
55 typedef NS_ENUM(NSInteger, AGSGeodeticCurveType) {
61 };
62 
67 typedef NS_OPTIONS(NSInteger, AGSGeometryExtendOption) {
74 };
75  //Required for Globals API doc
77 
98 
99 
100 #pragma mark - Geodetic/Geodesic Operators
101 
110 + (double)geodeticAreaOfGeometry:(AGSGeometry*)geometry areaUnit:(AGSAreaUnit*)areaUnit curveType:(AGSGeodeticCurveType)curveType;
111 
121 + (nullable AGSPolygon*)geodeticBufferGeometry:(AGSGeometry*)geometry distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType;
122 
134 + (nullable NSArray<AGSGeometry*>*)geodeticBufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances distanceUnit:(AGSLinearUnit*)distanceUnit maxDeviation:(double)maxDeviation curveType:(AGSGeodeticCurveType)curveType unionResults:(BOOL)unionResults;
135 
144 + (nullable AGSGeometry*)geodeticDensifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
145 
155 + (nullable AGSGeodeticDistanceResult*)geodeticDistanceBetweenPoint1:(AGSPoint*)point1 point2:(AGSPoint*)point2 distanceUnit:(AGSLinearUnit*)distanceUnit azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
156 
162 + (nullable AGSGeometry*)geodesicEllipseWithParameters:(AGSGeodesicEllipseParameters*)params;
163 
176 + (double)geodeticLengthOfGeometry:(AGSGeometry*)geometry lengthUnit:(AGSLinearUnit*)lengthUnit curveType:(AGSGeodeticCurveType)curveType;
177 
188 + (nullable NSArray<AGSPoint*>*)geodeticMovePoints:(NSArray<AGSPoint*>*)points distance:(double)distance distanceUnit:(AGSLinearUnit*)distanceUnit azimuth:(double)azimuth azimuthUnit:(AGSAngularUnit*)azimuthUnit curveType:(AGSGeodeticCurveType)curveType;
189 
195 + (nullable AGSGeometry*)geodesicSectorWithParameters:(AGSGeodesicSectorParameters*)params;
196 
197 
198 #pragma mark - Topological Query Operators
199 
203 + (BOOL)geometry:(AGSGeometry*)geometry1 containsGeometry:(AGSGeometry*)geometry2;
204 
208 + (BOOL)geometry:(AGSGeometry*)geometry1 crossesGeometry:(AGSGeometry*)geometry2;
209 
221 + (nullable NSArray<AGSGeometry *> *)cutGeometry:(AGSGeometry*)geometry withCutter:(AGSPolyline*)cutter;
222 
226 + (BOOL)geometry:(AGSGeometry*)geometry1 disjointToGeometry:(AGSGeometry*)geometry2;
227 
231 + (BOOL)geometry:(AGSGeometry*)geometry1 equalsGeometry:(AGSGeometry*)geometry2;
232 
236 + (BOOL)geometry:(AGSGeometry*)geometry1 intersectsGeometry:(AGSGeometry*)geometry2;
237 
241 + (BOOL)geometryIsSimple:(AGSGeometry*)geometry;
242 
249 + (BOOL)geometry:(AGSGeometry*)geometry1 overlapsGeometry:(AGSGeometry*)geometry2;
250 
265 + (BOOL)geometry:(AGSGeometry*)geometry1 relatesToGeometry:(AGSGeometry*)geometry2 byRelation:(NSString*)relation;
266 
270 + (BOOL)geometry:(AGSGeometry*)geometry1 touchesGeometry:(AGSGeometry*)geometry2;
271 
275 + (BOOL)geometry:(AGSGeometry*)geometry1 withinGeometry:(AGSGeometry*)geometry2;
276 
277 
278 #pragma mark - Topological Analysis Operators
279 
296 + (double)areaOfGeometry:(AGSGeometry*)geometry;
297 
303 + (nullable AGSGeometry*)boundaryOfGeometry:(AGSGeometry*)geometry;
304 
318 + (nullable AGSPolygon*)bufferGeometry:(AGSGeometry*)geometry byDistance:(double)distance;
319 
334 + (nullable NSArray<AGSGeometry*>*)bufferGeometries:(NSArray<AGSGeometry*>*)geometries distances:(NSArray<NSNumber*>*)distances unionResults:(BOOL)unionResults;
335 
342 + (nullable AGSGeometry*)clipGeometry:(AGSGeometry*)geometry withEnvelope:(AGSEnvelope*)envelope;
343 
352 + (nullable AGSEnvelope*)combineExtentsOfGeometry:(AGSGeometry*)geometry1 andGeometry:(AGSGeometry*)geometry2;
353 
361 + (nullable AGSEnvelope*)combineExtentsOfGeometries:(NSArray<AGSGeometry*>*)geometries;
362 
368 + (nullable AGSGeometry*)convexHullForGeometry:(AGSGeometry*)geometry;
369 
378 + (nullable NSArray<AGSGeometry*>*)convexHullForGeometries:(NSArray<AGSGeometry*>*)geometries mergeInputs:(BOOL)mergeInputs;
379 
387 + (nullable AGSGeometry*)densifyGeometry:(AGSGeometry*)geometry maxSegmentLength:(double)maxSegmentLength;
388 
395 + (nullable AGSGeometry*)differenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
396 
408 + (double)distanceBetweenGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
409 
410 
423 + (nullable AGSPolyline*)extendPolyline:(AGSPolyline*)polyline withPolyline:(AGSPolyline*)extender options:(AGSGeometryExtendOption)options;
424 
431 + (nullable AGSGeometry*)generalizeGeometry:(AGSGeometry*)geometry maxDeviation:(double)maxDeviation removeDegenerateParts:(BOOL)removeDegenerateParts;
432 
439 + (nullable AGSGeometry*)intersectionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
440 
441 + (nullable NSArray*)intersectionsOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
442 
455 + (double)lengthOfGeometry:(AGSGeometry*)geometry;
456 
462 + (AGSGeometry*)geometryByRemovingMFromGeometry:(AGSGeometry*)geometry;
463 
464 
470 + (AGSGeometry*)geometryByRemovingZFromGeometry:(AGSGeometry*)geometry;
471 
472 
478 + (AGSGeometry*)geometryByRemovingZAndMFromGeometry:(AGSGeometry*)geometry;
479 
490 + (nullable AGSMultipart*)reshapeGeometry:(AGSMultipart*)geometry withPolyline:(AGSPolyline*)reshaper;
491 
500 + (AGSGeometry*)geometryBySettingM:(double)m inGeometry:(AGSGeometry*)geometry;
501 
510 + (AGSGeometry*)geometryBySettingZ:(double)z inGeometry:(AGSGeometry*)geometry;
511 
521 + (AGSGeometry*)geometryBySettingZ:(double)z M:(double)m inGeometry:(AGSGeometry*)geometry;
522 
530 + (nullable AGSGeometry*)simplifyGeometry:(AGSGeometry*)geometry;
531 
539 + (nullable AGSGeometry*)symmetricDifferenceOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
540 
547 + (nullable AGSGeometry*)unionOfGeometry1:(AGSGeometry*)geometry1 geometry2:(AGSGeometry*)geometry2;
548 
559 + (nullable AGSGeometry*)unionGeometries:(NSArray<AGSGeometry*>*)geometries;
560 
561 #pragma mark - Other
562 
577 + (nullable NSArray<AGSPolygon*>*)autoCompleteForExistingBoundaries:(NSArray<AGSGeometry*>*)existingBoundaries newBoundaries:(NSArray<AGSPolyline*>*)newBoundaries;
578 
585 + (nullable AGSPoint*)labelPointForPolygon:(AGSPolygon*)polygon;
586 
593 + (nullable AGSGeometry*)normalizeCentralMeridianOfGeometry:(AGSGeometry*)geometry;
594 
614 + (nullable AGSGeometry*)offsetGeometry:(AGSGeometry*)geometry distance:(double)distance offsetType:(AGSGeometryOffsetType)offsetType bevelRatio:(double)bevelRatio flattenError:(double)flattenError;
615 
631 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry*)geometry toSpatialReference:(AGSSpatialReference*)spatialReference;
632 
643 + (nullable AGSGeometry*)projectGeometry:(AGSGeometry *)geometry
644  toSpatialReference:(AGSSpatialReference *)toSpatialReference
645  datumTransformation:(nullable AGSDatumTransformation *)datumTransformation;
646 
654 + (nullable AGSProximityResult*)nearestCoordinateInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
655 
663 + (nullable AGSProximityResult*)nearestVertexInGeometry:(AGSGeometry*)geometry toPoint:(AGSPoint*)point;
664 
671 + (nullable AGSPoint *)pointAlongPolyline:(AGSPolyline *)polyline distance:(double)distance;
672 
683 +(double)fractionAlongLine:(AGSPolyline *)line
684  toPoint:(AGSPoint *)point
685  tolerance:(double)tolerance;
686 
687 
688 @end
Defines common members for polyline and polygon multipart geometries.
Definition: AGSMultipart.h:35
Definition: AGSGeometryEngine.h:56
Represents angular units.
Definition: AGSAngularUnit.h:44
Defines common members for all specific types of geometry.
Definition: AGSGeometry.h:106
A multipart shape used to represent an area.
Definition: AGSPolygon.h:57
Definition: AGSGeometryEngine.h:70
Parameters for geodesicEllipseWithParameters: (AGSGeometryEngine)
Definition: AGSGeodesicEllipseParameters.h:36
Represents linear units.
Definition: AGSLinearUnit.h:50
Defines a unit of measurement.
Definition: AGSUnit.h:37
Definition: AGSGeometryEngine.h:59
A geometry that represents a rectangular shape.
Definition: AGSEnvelope.h:47
Represents the spatial reference of a geometry.
Definition: AGSSpatialReference.h:39
AGSGeometryExtendOption
Definition: AGSGeometryEngine.h:67
A multipart linear shape.
Definition: AGSPolyline.h:49
A base class for transformation between two coordinate systems that have different datums...
Definition: AGSDatumTransformation.h:45
A class providing methods for operating on AGSGeometry objects.
Definition: AGSGeometryEngine.h:97
Definition: AGSGeometryEngine.h:44
Definition: AGSGeometryEngine.h:68
AGSGeodeticCurveType
Definition: AGSGeometryEngine.h:55
Definition: AGSGeometryEngine.h:47
Definition: AGSGeometryEngine.h:46
Definition: AGSGeometryEngine.h:72
Definition: AGSObject.h:21
Definition: AGSGeometryEngine.h:73
A result of AGSGeometryEngine::geodeticDistanceBetweenPoint1:point2:inUnits: method.
Definition: AGSGeodeticDistanceResult.h:33
Parameters for geodesicSectorWithParameters: (AGSGeometryEngine)
Definition: AGSGeodesicSectorParameters.h:34
Mutable collection of points of a multipoint geometry builder.
Definition: AGSMutablePointCollection.h:51
The result of a proximity search.
Definition: AGSProximityResult.h:32
AGSGeometryOffsetType
Definition: AGSGeometryEngine.h:43
Definition: AGSGeometryEngine.h:71
Definition: AGSGeometryEngine.h:57
Definition: AGSGeometryEngine.h:69
Represents area units.
Definition: AGSAreaUnit.h:56
Definition: AGSGeometryEngine.h:58
Definition: AGSGeometryEngine.h:45
Definition: AGSGeometryEngine.h:60
A location defined by x and y (and optionally z) coordinates.
Definition: AGSPoint.h:57