Мне нужно проверить, принадлежит ли местоположение пользователя 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?