I'm using geodesicMovePoints to record locations of marine mammals using a bearing and distance provided by the user.
So far everything is working smoothly using something like this
//create point for platform location
AGSPoint* vesselPoint = [AGSPoint pointWithX:[platX doubleValue] y:[platY doubleValue] spatialReference:[AGSSpatialReference wgs84SpatialReference]];
//drop it in an arrray for move
NSArray *pointArray = [NSArray arrayWithObject:vesselPoint];
AGSGeometryEngine *pointEngine = [[AGSGeometryEngine alloc]init];
NSArray *movedPoints = [pointEngine geodesicMovePoints:pointArray byDistance:distance inUnit:AGSSRUnitMeter azimuth:bearing];
AGSPoint* updatedPoint = [movedPoints firstObject];
However it doesn't seem like the point are being moved far enough... for instance I have collected a couple test points using a base TPK with some buffered distances baked in from some test points:
The first point was collected with an offset of 10 meters at bearing 180.
The second point was collected with an offset of 50 meters, also at 180.
The actual measurements from the test point are 7.7 and 45.8 meters.
Can someone explain a bit about what is going on in the geodesicMovePoints function? Any ideas what might be accounting for the discrepancy in distance?