显示用户当前位置与标签中注释之间的距离

时间:2013-01-28 07:11:01

标签: objective-c android-mapview tableview cllocation

我想在自定义表格单元格的标签中显示用户当前位置与另一个注释(在我的MapView上显示)之间的距离。

每个单元格显示一个咖啡馆的名称(nameLabel),在下面,我希望它显示远离每个咖啡馆的距离(distanceLabel)。

我的 MapViewController.m 使用此代码计算用户当前位置与最近的咖啡馆之间的距离:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

    for (MapViewAnnotation *annotation in self.mapView.annotations) {
        CLLocationCoordinate2D coord = [annotation coordinate];
        CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:coord.latitude longitude:coord.longitude];
        annotation.distance = [newLocation distanceFromLocation:userLocation];
        CLLocationDistance calculatedDistance = [userLocation distanceFromLocation:userLocation];
        annotation.distance = calculatedDistance;
    }

我已经设置了我的自定义单元格,我只想知道我应该把什么放入我的TableView代码(TableViewController.m),以便在我的文本标签内显示计算距离(称为 distanceLabel < /强>)。

E.g。我该如何完成这一行呢?

cell.distanceLabel.text = 

更新

刚尝试添加对我的TableViewController.h的引用,但是xcode不断向我提出错误“将'CLLocationDistance'重新定义为不同类型的符号”。

@class CLLocationDistance; 

@property (nonatomic, strong) CLLocationDistance *calculatedDistance; 

更新

.h文件

enter image description here

****更新**

**。m file ****

enter image description here

1 个答案:

答案 0 :(得分:1)

为fx中的CLLocationDistance calculatedDistance做一个前向参考。你的.h。 CLLocationDistance是一个double,一个prmitive数据类型的typedef,所以不要在前向引用中使用指针(CLLocationDistance calulatedDistance;或@property CLLocationDistance calulatedDistance;)。然后执行以下操作:

 cell.distanceLabel.text = [NSString stringWithFormat:@"%f", calculatedDistance]; 

因此事实上,您不必创建另一个/ new double并将其分配给calculatedDistance。对不起任何困惑.. :)