私が持っている範囲 (最大 x、最大 y、最小 x、最小 y 座標) が現在表示されているマップ ビューにあるかどうかを確認しようとしています。
エクステントを取得して作成しますMKMapRect
:
MKMapPoint upperLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.minY floatValue]));
MKMapPoint lowerLeft = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.minY floatValue], [boundary.extents.minY floatValue]));
MKMapPoint upperRight = MKMapPointForCoordinate(CLLocationCoordinate2DMake([boundary.extents.maxY floatValue], [boundary.extents.maxY floatValue]));
MKMapRect mapRect = MKMapRectMake(upperLeft.x, upperLeft.y, fabs(upperLeft.x - upperRight.x), fabs(upperLeft.y - lowerLeft.y));
ここで、「mapRect」が mapView.visibleMapRect にあるかどうかを確認したいと思います。
if (MKMapRectContainsRect(mapView.visibleMapRect, mapRect)) {
// do some stuff
}
しかし、私のエクステントは、あるmapView.visibleMapRect
べきだとわかっているときに決して含まれません。
を に置き換えるmapView.visibleMapRect
とMKMapRectWorld
、エクステント「mapRect」が含まれます。
私は何か間違ったことをしていますか?mapView.visibleMapRect
私が思っているもの(画面上の表示可能領域)ではありませんか?