【问题标题】:Distance for location always return result 0 - ios sdk位置的距离总是返回结果 0 - ios sdk
【发布时间】:2016-08-12 03:40:30
【问题描述】:

我计算了如下 2 个位置距离,结果始终为 0 米。 有人可以帮忙吗?

double distance = [self.currentLocation distanceFromLocation:location1];
NSLog(@"Distance i meters: %.8f", distance);
if(distance <30)
{
    NSLog(@"Yeah, this place is inside my circle");
}
else
{
    NSLog(@"Oops!! its too far");
 }

谢谢

【问题讨论】:

  • 首先验证self.currentLocationlocation1 都不是零。 distance 将是 0,如果其中一个是 nil
  • 你看到我的回答@user831098 对你有帮助吗?

标签: ios ios9 cllocationmanager distance


【解决方案1】:

试试这个代码:使用CLLocationDistance获取距离:

 CLLocationDistance distance = [self.currentLocation distanceFromLocation:location1];
 float TotalMile=distance/1609.344;

【讨论】:

    【解决方案2】:

    我得到正确的结果,编码如下:

     CLLocation *location1 = [[CLLocation alloc] initWithLatitude:DEFAULT_LAT longitude:DEFAULT_LNG];
    
        CLLocationCoordinate2D annocoord = CLLocationCoordinate2DMake(location1.coordinate.latitude, location1.coordinate.longitude);
        CLLocationCoordinate2D usercoord = self.locationManager.location.coordinate;
    
       CLLocation *loc = [[CLLocation alloc] initWithLatitude:annocoord.latitude longitude:annocoord.longitude];
        CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:self.locationManager.location.coordinate.latitude longitude:self.locationManager.location.coordinate.longitude];
    
        NSLog(@"LOC  = %f, %f", loc.coordinate.latitude,  loc.coordinate.longitude);
        NSLog(@"LOC2 = %f, %f", loc2.coordinate.latitude, loc2.coordinate.longitude);
    
        CLLocationDistance dist = [loc distanceFromLocation:loc2];
    
        NSLog(@"DIST: %f", dist); // Wrong formatting may show wrong value!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多