• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 distanceFromLocation : 的距离错误

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:58:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试找出问题所在,但似乎上述方法只是返回了错误的值。我在模拟器中设置坐标,然后打印它们并计算距离:

(lldb) p location.coordinate
(CLLocationCoordinate2D) $1 = (latitude = 51, longitude = 0.10000000000000001)
(lldb) p _oldLocation.coordinate
(CLLocationCoordinate2D) $2 = (latitude = 51, longitude = 0)

现在我正在计算距离:

distance = (CGFloat)[location distanceFromLocation:_trackEndLocation];

当我打印它时,我得到:

(lldb) po self.trackDistance
7019.76758

现在,问题是用户告诉我应用返回的距离太远。因为我想调试它,所以我检查了 page to calculate distance between two points 的距离.

结果如下:

enter image description here

如您所见,网页上的距离是 6.997 公里,而 Apple 方法告诉我的距离是 7.019 公里。我想知道谁是不正确的,Apple 或网页以及如何处理这件事。差异不大,但是当您在几个点之间累积时,可能会令人不安。



Best Answer-推荐答案


distanceFromLocation 的 Apple 文档页面这样说:

This method measures the distance between the two locations by tracing a line between them that follows the curvature of the Earth. The resulting arc is a smooth curve and does not take into account specific altitude changes between the two locations.

我怀疑 Google map 确实考虑了两点之间的地形,这就是为什么您在测试中看到 0.3% 的差异。但是,我怀疑您的客户是否在提示这种级别的错误。错误更有可能来自不同的原因。

如果不了解您的算法的更多信息,很难说,但如果您正在跟踪行驶距离,则错误可能是由手机 GPS 坐标中的抖动引起的。 (这会导致直线路径看起来像锯齿形,从而产生更长的距离。)您可以从您的应用中记录一些真实数据以确保查看。

关于ios - 使用 distanceFromLocation : 的距离错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24905536/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap