Iphone 计算并显示用户位置和表视图中已知点之间的距离

Iphone 计算并显示用户位置和表视图中已知点之间的距离,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我有一个带有酒店列表的表视图,我想把它放在cell.detailTextLabel.text中userlocation和hotel之间的距离。如何获取用户位置的坐标? 我在网上看到我需要使用CLLocationManager,但我不知道如何以及在我的表视图中的何处实现。 然后,为了得到距离,我在userLocation和酒店坐标之间做了一个“getDistancefrom”? 谢谢这真是个大问题;) 看起来很不错-我会仔细检查一下,看看是否有帮助。如果没有,请返回stackoverflow并提出

我有一个带有酒店列表的表视图,我想把它放在cell.detailTextLabel.text中userlocation和hotel之间的距离。如何获取用户位置的坐标? 我在网上看到我需要使用CLLocationManager,但我不知道如何以及在我的表视图中的何处实现。 然后,为了得到距离,我在userLocation和酒店坐标之间做了一个“getDistancefrom”?
谢谢

这真是个大问题;)


看起来很不错-我会仔细检查一下,看看是否有帮助。如果没有,请返回stackoverflow并提出更多问题。

好的,您已经想到了正确的方法,只需要清除细节

最简单的方法是让表视图控制器遵守CLLocationManagerDelegate协议。然后设置位置管理器并让其开始更新用户的位置:

locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];
然后,您只需从委托实现此方法:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
在那里,当用户的位置发生变化时,您将收到通知。这样你就可以抓取新位置的经度和纬度,并使用所有酒店的经度和纬度计算距离

确保将核心位置框架导入到项目中,因为我认为默认情况下它不在那里


祝你好运。

我遵循了你建议的教程;在理解如何计算和显示距离(这是一件困难的事情)之前,我尝试在cell.detailTextLabel.text中显示用户位置的坐标,但detailTextLabel中没有显示任何内容。在本教程的最后一步中有以下代码-(void)locationUpdate:(CLLocation*)location{locationLabel.text=[location description];}现在,如何在cell.detailtextlab中设置位置标签的内容?我还尝试了字符串:-(void)locationUpdate:(CLLocation*)location{locationstring=[NSString stringwithFormat:@“%@”,[locatioI]我有同样的问题。我在地图视图中计算了距离,但我试图“打印”距离值在表视图的单元格中。单元格中填充了自定义的CD db StoreLocation对象数组。CD db对象具有lat和long。通过在地图视图中循环这些StoreLocation对象,这些数据将转换为MyLocation MKAnnotation对象。但对于表视图,它们目前只是StoreLocation对象。我不知道如何访问从我的tableview中删除MyLocation.distance属性。