我一直在测试 CoreLocation 各个方面的准确性,并惊讶地发现传递给 CLLocationMangerDelegate 方法的新旧位置的准确性值:(void)locationManager:didUpdateToLocation:fromLocation 本身非常不准确。
走在某些人行道上(沿着一段道路,一侧有建筑物)我发现虽然 CLLocationManager 声称它提供的 CLLocations 的水平精度为 5 米,但实际上 MKUserAnnotation 显示的位置是距离我知道的位置最多 30 米的任何东西(通常显示为一排建筑物的对面)。这表明准确度读数本身并不准确。 CLLocationManager 告诉我它的坐标精确到 5 米以内,但实际上最多 30 米。
澄清一下,这不是缓存/时间戳问题它在某些区域是可重复的,并且不会随着时间的推移而改进。
有没有其他人遇到过这个问题?
最佳答案
CoreLocation 不是人,不知道你“真正”在哪里,这是你问题答案的本质。它正在使用您设备上的传感器并为您提供它所获得的最佳答案,而它知道其声称答案的准确性的能力存在问题,这反射(reflect)出定位问题本质上非常困难。
离题到位置数据本身:CoreLocation 从蜂窝塔三角测量、附近的 SSID 和最后的 GPS 中提取,以确定设备的位置。这些确实有不同程度的准确度,但它们的共同点是,如果你让设备工作更长时间,你会得到更准确的答案。但是,由于 CoreLocation 使用的所有工具在电池生命周期方面都很昂贵,因此它会在生成满足“足够好”标准的答案后立即停止。
这就是为什么另一个答案告诉您 set your desiredAccuracy到 kCLLocationAccuracyBestForNavigation - 当你这样做时,你基本上是在告诉 CoreLocation “向我展示你拥有的最好的”,并且你还自愿承担了随之而来的 CPU 负载、时间和电池消耗接着就,随即。您还超出了 CoreLocation 用来确定什么是“足够好”的正常范围 - 而不是提前告诉它什么时候可以停止,您基本上是说“我会告诉您什么时候足够好”。
CoreLocation 因此将继续尝试为您提供更好的答案,直到您告诉它您已经完成,并且您需要履行您的责任来决定那一点是什么。这也是您需要记住的地方,即 CoreLocation 的所有工具可以的准确度是有限的 - 您可以获得很多有效的纬度和经度数字,但是通过冒险超出比例,您自愿承担了确定这些数字可信度的任务。预定义的精度等级为 10 米、100 米、1 公里和 3 公里。 CoreLocation 的创建者选择了这些分界点这一事实应该可以告诉您一些关于问题难度的信息——如果提高准确性很容易,那么它可能已经在框架中了。
所以回过头来:CoreLocation 忠实地报告了其答案的准确性,只是这些答案背后的数据存在问题,如果它对其准确性声明的准确性有更多了解,它会在其准确性声明中反射(reflect)出来.考虑 CoreLocation 确切知道其准确性声明的准确性的假设情况,然后是 CoreLocation 对其准确性声明的准确性一无所知的情况,并考虑您将如何设计 API 来解决该问题。 CoreLocation 的确定性与它的确定性一样合理,如果您能找到一种在硬件限制范围内易于处理的方法来更加确定您的确定性,App Store 财富等待着您你。
关于iphone - CoreLocation 的准确度测量有多准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229200/
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby
在Ruby1.9.3中,you'reallowedtorunmultipletestcasesatonce.我不确定这是语言的特性、minitest库还是YARV的特性,所以对于任何不好的术语表示歉意。但是他们是否为此取消了GVL,或者这是否仅仅意味着如果一个线程正在执行IO,另一个线程可以利用CPU? 最佳答案 该实现不使用线程,而是使用通过管道进行通信的独立进程。参见例如thispresentation.所以GVL/GIL没有发挥作用。 关于ruby-Ruby1.9.3中的并行测试有
我编写了一个非常简单的Sassmixin,用于将像素值转换为rem值(请参阅JonathanSnook的articleonthebenefitsofusingrems)。这是代码://MixinCode$base_font_size:10;//10px@mixinrem($key,$px){#{$key}:#{$px}px;#{$key}:#{$px/$base_font_size}rem;}//Includesyntaxp{@includerem(font-size,14);}//RenderedCSSp{font-size:14px;font-size:1.4rem;}这个mixi
我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符
我想找到Fixnum的长度,num,而不将其转换为String。也就是说,在不调用.to_s()方法的情况下,num有多少位:num.to_s.length 最佳答案 putsMath.log10(1234).to_i+1#=>4您可以像这样将它添加到Fixnum:classFixnumdefnum_digitsMath.log10(self).to_i+1endendputs1234.num_digits#=>4 关于ruby-不转换成字符串,一个Fixnum有多少位数?,我们在Sta
我有一个使用deviseonrails3的应用程序。我想启用http身份验证,以便我可以从iPhone应用程序向我的网络应用程序进行身份验证。如何从我的iPhone应用程序进行身份验证以进行设计?这安全吗?还是我应该进行不同的身份验证? 最佳答案 从设计的角度来看,您有3个选择:1)使用基本的http身份验证:您的iPhone应用程序有一个secretkey-这是在您的iPhone应用程序代码中烘焙的-用于对网络应用程序的每个请求进行身份验证。Google搜索:“设计基本的http身份验证”2)您可以通过在您的iPhone应用程序中
我正在寻找一种方法来衡量我的cucumber步骤的执行时间。使用junit格式,我设法获得了一些有关功能和场景执行时间的数据,但我还想查看场景中步骤的时间。 最佳答案 cucumber--formatusage“打印使用步骤定义的地方。首先列出最慢的步骤定义(带有持续时间)。” 关于ruby-如何测量cucumber步骤的执行时间,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7
我正在构建一个供个人使用的小型网站,以测试我公司制作的API。我的老板想要一个网站,我们可以在其中输入网站,使用GET或POST请求表单,以及发送请求的次数。他想要记录请求、每个请求的时间以及所有请求的平均时间。有没有一种方法可以使用Ruby测量GET或POST请求的响应时间?我查看了Net::HTTP库,但没有看到任何返回所用时间的内容。有没有网站已经这样做了?他们需要有一个GUI,这样非技术人员也可以使用它。如果没有,我计划使用一个简单的表单来运行脚本,将该脚本的输出写入文本文件或电子表格,然后将其发送给用户。还有其他建议吗?(一个漂亮的AJAX外观界面可能工作得很好,但可能需要数