ユーザーの場所がMKCoordinateRegionに属しているかどうかを確認する必要があります。CGRectContainsCGPoint(rect、point)のような単純な関数が見つからないことに驚きました。
次のコードが見つかりました:
CLLocationCoordinate2D topLeftCoordinate =
CLLocationCoordinate2DMake(region.center.latitude
+ (region.span.latitudeDelta/2.0),
region.center.longitude
- (region.span.longitudeDelta/2.0));
CLLocationCoordinate2D bottomRightCoordinate =
CLLocationCoordinate2DMake(region.center.latitude
- (region.span.latitudeDelta/2.0),
region.center.longitude
+ (region.span.longitudeDelta/2.0));
if (location.latitude < topLeftCoordinate.latitude || location.latitude > bottomRightCoordinate.latitude || location.longitude < bottomRightCoordinate.longitude || location.longitude > bottomRightCoordinate.longitude) {
// Coordinate fits into the region
}
ただし、ドキュメントでは領域の長方形の計算方法が正確に指定されていないため、正確かどうかはわかりません。
それを行うためのより簡単な方法がなければなりません。MapKitフレームワークのドキュメントの一部の機能を見落としていませんか?