半径と場所があります。
これは、円の外接する長方形を取得しようとしている方法です。
- (MKMapRect)boundingMapRect{
CLLocationCoordinate2D tmp;
MKCoordinateSpan radiusSpan = MKCoordinateRegionMakeWithDistance(self.coordinate, 0, self.radius).span;
tmp.latitude = self.coordinate.latitude - radiusSpan.longitudeDelta;
tmp.longitude = self.coordinate.longitude - radiusSpanSpan.longitudeDelta;
MKMapPoint upperLeft = MKMapPointForCoordinate(tmp);
MKMapRect bounds = MKMapRectMake(upperLeft.x, upperLeft.y, self.radius * 2, self.radius * 2);
return bounds;
}
MKMapRectMake(...)
マップポイントで測定された幅と高さが必要なようです。半径をそれに変換するにはどうすればよいですか?
最終的には、次のようにレンダリングしています。
MKMapRect theMapRect = [self.overlay boundingMapRect];
CGRect theRect = [self rectForMapRect:theMapRect];
CGContextAddEllipseInRect(ctx, theRect);
CGContextFillPath(ctx);
結局、半径は地図上でメートルと等しくないように見え、距離も正しく測定されていないようです。それを正しく行う方法は?
すべてのヒントに本当に感謝しています。