title: Finding the center of a CGPath
body: <p>I have an arbitrary <code>CGPath</code> and I'd like to find it's geographic center. I can get the path bounding box with <code>CGPathGetPathBoundingBox</code> and then find the center of that box. But is there a better way to find the center of a path?</p>
  
  <p><strong>Update</strong> for those who like to see code: here is code for using the average-of-points method suggested by Adam in the answers (don't miss the even better technique in the answers below)...</p>
  
  <pre><code>    BOOL moved = NO; // the first coord should be a move, the rest add lines
      CGPoint total = CGPointZero;
      for (NSDictionary *coord in [polygon objectForKey:@"coordinates"]) {
          CGPoint point = CGPointMake([(NSNumber *)[coord objectForKey:@"x"] floatValue], 
                                      [(NSNumber *)[coord objectForKey:@"y"] floatValue]);
          if (moved) {
              CGContextAddLineToPoint(context, point.x, point.y);
              // calculate totals of x and y to help find the center later
              // skip the first "move" point since it is repeated at the end in this data
              total.x = total.x + point.x;
              total.y = total.y + point.y;
          } else {
              CGContextMoveToPoint(context, point.x, point.y);
              moved = YES; // we only move once, then we add lines
          }
      }
  
      // the center is the average of the total points
      CGPoint center = CGPointMake(total.x / ([[polygon objectForKey:@"coordinates"] count]-1), total.y / ([[polygon objectForKey:@"coordinates"] count]-1));
  </code></pre>
  
  <p>If you have a better idea, please share!</p>