在 MapKit / CoreLocation 中计算两个纬度/经度之间的距离

Posted

技术标签:

【中文标题】在 MapKit / CoreLocation 中计算两个纬度/经度之间的距离【英文标题】:Calculate distance between two latitudes/longitudes in MapKit / CoreLocation 【发布时间】:2009-12-07 00:13:28 【问题描述】:

我希望在 CoreLocation 中使用 getDistanceFrom 方法来确定两点之间的距离,但在尝试使用 CoreLocation 时出现错误...

我正在使用 3.1.2。我试过这个,但返回错误:

CLLocation *userLoc = [[CLLocation alloc] initWithCoordinate:appDelegate.mapView2.userLocation.coordinate];
CLLocation *poiLoc = [[CLLocation alloc] initWithLatitude: [aPOI.latitude doubleValue] longitude: [aPOI.longitude doubleValue]];

double dist = [userLoc getDistanceFrom:poiLoc] / 1000;

NSLog(@"%d",dist);

给出的错误:

".objc_class_name_CLLocation", referenced from:
literal-pointer@__OBJC@__cls_refs@CLLocation in POIDetailViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

我错过了什么吗?我已经导入了CoreLocation...

此方法在 3.1.2 中是否已弃用?

谢谢

【问题讨论】:

好吧,我修复了错误,但现在我收到了一个巨大的数字(1862709713)返回dist?为什么会这样? 【参考方案1】:

您需要在项目中添加一个 CoreLocation 框架。

【讨论】:

【参考方案2】:

通过从 Xcode 项目包中的 project.pbxproject 文件中删除框架搜索目录解决

【讨论】:

以上是关于在 MapKit / CoreLocation 中计算两个纬度/经度之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

iOS 利用CoreLocation和MapKit开发搜索附近的商场功能

是否可以使用 CoreLocation/MapKit 查找纬度/经度附近的地址?

iPhone SDK - MapKit CoreLocation - 根据纬度和经度制作街道地址

核心位置,MapKit 错误

Map小记

IOS-CoreLocation