Iphone 确定点是否在半径范围内
确定点X是否在点Y的100米半径内的最佳方法是什么 是否有一种关于CLLocation的方法 谢谢请参见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
- (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框架包含了解决此问题的方法,假设您使用的是纬度和经度坐标。查看此帖子以了解更多信息: