Iphone 确定点是否在半径范围内

Iphone 确定点是否在半径范围内,iphone,objective-c,Iphone,Objective C,确定点X是否在点Y的100米半径内的最佳方法是什么 是否有一种关于CLLocation的方法 谢谢请参见 - (CLLocationDistance) distanceFromLocation:(const CLLocation *)location 它计算与另一个CLLocation对象的距离。您可以使用以下方法: // proximity distance calculation static const double kDegToRad = 0.01745329251994329576

确定点X是否在点Y的100米半径内的最佳方法是什么

是否有一种关于CLLocation的方法

谢谢

请参见

- (CLLocationDistance) distanceFromLocation:(const CLLocation *)location


它计算与另一个
CLLocation
对象的距离。

您可以使用以下方法:

// 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
}
if([distanceinmeters fromloc:location1到:location2]<100)
{
//您的条件已满足。您可以在此处编写代码
}

计算两个lat/long之间的距离,并与100进行比较,以查看您的情况是否小于100。CoreLocation框架包含了解决此问题的方法,假设您使用的是纬度和经度坐标。查看此帖子以了解更多信息: