【问题标题】:Need distance from stored coordinates to current location需要从存储坐标到当前位置的距离
【发布时间】:2012-11-21 06:07:55
【问题描述】:

我正在尝试从存储到核心数据中的经度和纬度到当前位置的距离。我有这段代码,但我不知道如何集成代码以使用我存储在核心数据中的坐标。如何使用存储在核心数据中的坐标来获取与用户位置的距离?感谢您的帮助!

CLLocation *to = [[CLLocation alloc]
                  initWithLatitude:mapView.userLocation.coordinate.latitude
                  longitude:mapView.userLocation.coordinate.longitude];

CLLocation *from = [[CLLocation alloc]
                    initWithLatitude:mapView.userLocation.coordinate.latitude
                    longitude:mapView.userLocation.coordinate.longitude];

CLLocationDistance distance = [to distanceFromLocation:from];

_distance.text = [[NSString alloc]initWithFormat:@"%g",distance];

我的核心数据坐标如下:

_buyLong.text = [[_itemDetailArray valueForKey:@"longitude"] description];
_buyLatitude.text = [[_itemDetailArray valueForKey:@"latitude"] description];

【问题讨论】:

    标签: core-location cllocation mkmapview


    【解决方案1】:

    想通了,希望有人能从中受益:

    NSString *savedLatitude = [[_itemDetailArray valueForKey:@"latitude"] description];
        double latDouble = [savedLatitude doubleValue];
    
    NSString *savedLongitude = [[_itemDetailArray valueForKey:@"longitude"] description];
        double longDouble = [savedLongitude doubleValue];
    
    NSLog(@"Value Lat: %f", latDouble);
    NSLog(@"Value Long: %f", longDouble);
    
    // Item Location from Array
    itemCoordinate.latitude = latDouble;
    itemCoordinate.longitude = longDouble;
    
    // User Location from Device
    [currentLocation stopUpdatingLocation];
    theCoordinate.latitude = newLocation.coordinate.latitude;
    theCoordinate.longitude = newLocation.coordinate.longitude;
    
    CLLocation *loc = [[CLLocation alloc] initWithLatitude:theCoordinate.latitude longitude:theCoordinate.longitude];
    CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:itemCoordinate.latitude longitude:itemCoordinate.longitude];
    
    CLLocationDistance dist = [loc distanceFromLocation:loc2] *0.0006213; // Convert Meters to Miles
    NSString *distance = [NSString stringWithFormat:@"%.1f",dist];
    
    NSLog(@"DIST in Miles: %f", dist); // Wrong formatting may show wrong value!}
    
    _distance.text = distance;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多