Вы можете использовать этот метод:
// proximity distance calculation
static const double kDegToRad = 0.017453292519943295769236907684886;
static const double kEarthRadiusM = 6372797.560856;
+ (double)distanceInMetersFromLoc:(CLLocation *)from toLoc:(CLLocation *)to
{
return kEarthRadiusM * [self radianArcFrom:from.coordinate to:to.coordinate];
}
+ (double)radianArcFrom:(CLLocationCoordinate2D)from to:(CLLocationCoordinate2D)to
{
double latitudeArc = (from.latitude - to.latitude) * kDegToRad;
double longitudeArc = (from.longitude - to.longitude) * kDegToRad;
double latitudeHS = sin(latitudeArc * 0.5);
latitudeHS *= latitudeHS;
double lontitudeHS = sin(longitudeArc * 0.5);
lontitudeHS *= lontitudeHS;
double factor = cos(from.latitude * kDegToRad) * cos(to.latitude * kDegToRad);
return 2.0 * asin(sqrt(latitudeHS + factor * lontitudeHS));
}
Сравните расстояние как
if([distanceInMetersFromLoc:location1 to:location2] < 100)
{
// your condition is satisfied. you can write your code here
}