私はMKOverlayをオーバーライドしているだけなので、Apple開発者のサンプルコードで良い練習を探しています...これを見たとき:
// bite off up to 1/4 of the world to draw into.
MKMapPoint origin = points[0];
origin.x -= MKMapSizeWorld.width / 8.0;
origin.y -= MKMapSizeWorld.height / 8.0;
MKMapSize size = MKMapSizeWorld;
size.width /= 4.0;
size.height /= 4.0;
boundingMapRect = (MKMapRect) { origin, size };
MKMapRect worldRect = MKMapRectMake(0, 0, MKMapSizeWorld.width, MKMapSizeWorld.height);
boundingMapRect = MKMapRectIntersection(boundingMapRect, worldRect);
たくさんの質問
- Apple が適切な boundingMapRect を計算した後に worldRect と交差するのはなぜですか?
- セキュリティで?
- boundingMapRect inter worldRect は常に boundingMapRect であるとは限りませんか?
- CGRect を表す 2 つの MKMapPoint がある場合、それを行う必要はありません。
よろしく、
編集
だから私はこのようにしなければなりませんか?
// set the smallest rectangle which able to contain this overlay
MKMapPoint leftTopPoint = MKMapPointForCoordinate(leftTopCorner);
MKMapPoint rightBottomPoint = MKMapPointForCoordinate([self bottomRightCoord]);
boundingMapRect = MKMapRectMake(leftTopPoint.x, leftTopPoint.y,
fabs(leftTopPoint.x - rightBottomPoint.x),
fabs(leftTopPoint.y - rightBottomPoint.y));