是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?

2023-11-26

我想分享我执行的测试场景的信息,并请您分享您在区域监控方面的经验。因此,我注册了两个相对的区域(A 和 B),半径为 5 公里,所需精度为 1 公里,它们之间的距离为 20 公里。但是,从 A 到 B 时,我没有收到任何 didEnterRegion/didExitRegion 事件。在我的应用程序原型中,我还放置了两个按钮(用于测试目的):一个启动重大更改,另一个启动标准位置监控。两者都在屏幕日志上打印 didUpdateToLocation 事件。

因此,在到达 B 区中心并对不可预测的功能感到非常恼火之后,我启用了重要的监控。之后,我收到了几个 didUpdateToLocation,horizo​​ntalAccuracy 约为 8.5 公里!哇,这很痛苦,因为我想做的就是拥有一个功能,可以通知用户,他想要的位置是距离他当前位置位置半径 5 公里的某个地方,并且我想依赖 GSM 小区三角形位置仅检测方法(用于保护电池)。

那么,回到我的例子。在出现如此大的 8 公里误差后,我启用了具有最佳精度的标准监控(GPS)。宾果,我收到了水平精度为 399 m 的 didUpdateToLocation 事件,直到那时,我才从我的初始位置(区域 A)收到了 didExitRegion 事件,以及另一个带有 didEnterRegion (B)的事件。 didUpdateToLocation 的另一个更新更准确一些 - 50m。

在之前的场景中,我的准确性也不稳定。有时有4公里水平精度,有时更少。但主要问题是,如果我们想节省电池(苹果在文档中教我们这一点),那么我们可以只依靠区域监控+ GSM 而不使用 GPS 吗?有一个苹果代码示例,其中包含“正确使用区域监控”(here),但也有一些令人无法接受的地方:

1)他们指出示例代码仅适用于 iPhone 4,Apple 文档指出 iOS 4.0+ 支持区域监控和重要监控。很酷,哈?

2) 示例代码使用了全部 3 种定位方法:significant、standard、region。它始终使用区域监控,但此外还使用最准确的标准位置。当应用程序进入后台时,它会停止标准并开始重大变化监控。当进入前台时,应用程序会停止并开始标准位置。似乎苹果文档相当模糊,不清楚如果我们只使用区域监控,我们会得到什么惩罚(horizo​​ntalAccuracy),或者我们是否总是使用所有三种方法?

3) Apple 文档指出,我们需要保留电池并根据需要使用最低限度的定位服务,如果我们不需要 GPS,那么我们应该使用 GSM(例如,1 - 3 公里所需的精度)。但示例代码使用最佳所需精度 (GPS) 进行区域监控和标准监控(当应用程序位于前台时)。我确实知道 GPS 可以解决我所有的错误和准确性问题,但仅使用 GSM 怎么样?在我的场景中获得 8.5 公里水平精度后,我不确定是否可以使用区域监控,因为它无法提供至少 5 公里的可接受误差。


根据我的经验,区域监控非常准确,不会对电池寿命造成重大损失。我有一个只有30-50米宽的区域的使用场景。准确性完全没有问题。我要说的一件事是,我只针对 iPhone 4 及更高版本的设备。如果我想支持 3GS 型号,我需要实施您提到的一些更改。

当纯粹依赖 -startMonitoringForRegion 时,您的更新会自动触发 -didEnter 和 -didExit 事件。这些是通过位置跟踪事件的组合触发的。重大变化、手机信号塔传输、WiFi 连接、另一个应用程序请求位置等等。当这些其他共享位置事件触发回调时,操作系统会进行处理。根据我的经验,它非常准确。但这仅适用于 iPhone 4 及更高版本。

我还使用了 Apple 的示例应用程序来进行设置,但文档中没有提供有关何时/何处获取触发器的详细信息。您可以阅读 Apple 提供的内容位置意识指南。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度? 的相关文章

随机推荐

  • 共享与非共享定点组合器

    这是 Haskell 中定点组合器的通常定义 fix a gt a gt a fix f let x f x in x On https wiki haskell org Prime numbers 他们定义了一个不同的定点组合器 Y t
  • 如何使用 Javascript/jQuery 从 div 内容中去除 HTML 标签?

    我做了一个div标签并将其内容存储在变量中 如果这个标签包含p b或任何其他标签 那么应该将其从字符串中删除 我怎样才能实现这个目标 使用正则表达式 var regex lt gt gt ig var body p test p var r
  • 如何在 mac osx 上安装 libksba?

    根据rvm要求 对于Ruby 1 9 3 安装libksba 如果使用Homebrew brew install libksba 我是全新的 不熟悉终端命令 如何在不使用 homebrew 的情况下安装 libksba 请帮忙 我刚刚从源代
  • 基于 GUI 或基于 Web 的 JSON 编辑器,其工作方式类似于属性资源管理器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 背景 这是对可能尚不存在的
  • sbt 0.11:使用企业 Maven 存储库

    如何将企业 Maven 存储库与 sbt 0 11 x 一起使用 排除其他存储库 如中所述如何让 sbt 使用本地 Maven 代理存储库 Nexus 没有提到ivyRepositories在 github 的新 sbt wiki 中 所以
  • C++ 预处理器元编程图灵完备吗?

    我知道 C 模板元编程是图灵完备的 同样的事情也适用于预处理器元编程吗 宏不会直接递归扩展 但我们可以通过一些方法来解决这个问题 在预处理器中执行递归的最简单方法是使用延迟表达式 延迟表达式是需要更多扫描才能完全扩展的表达式 define
  • 当文本框获得焦点时选择文本框的内容

    我在中找到了与我类似的问题使 WinForms TextBox 的行为类似于浏览器的地址栏 现在我正在尝试通过使其通用来修改或使其更加不同 我想对表单中的所有文本框应用相同的操作 而不需要为每个文本框编写代码 我不知道有多少 一旦我在表单中
  • 打包一个Python应用程序

    如何打包和分发由多个文件组成的Python应用程序 我的应用程序需要一个必须由用户填写的配置文件 我想我正在寻找类似于我在 Linux 机器上使用的配置 制作 制作安装 制作文档的步骤 有不同的解决方案可用 每种解决方案都涉及您的代码库遵守
  • PowerShell/CLI:具有多个数组的“Foreach”循环

    我有一个 PowerCLI 脚本 可以关闭虚拟机电源 更改其内存和 CPU 然后重新启动 我已经调整了脚本以利用变量 这一切都很完美 我现在正在尝试修改脚本以利用数组 以便循环遍历多个虚拟机 关闭和打开虚拟机电源的脚本部分运行良好 我遇到的
  • 在Java中查询系统(不是JVM)正常运行时间[重复]

    这个问题在这里已经有答案了 JavaSE 6 中是否有一种与操作系统无关的方法来查询系统 不是 JVM 我知道 RuntimeMXBean getUptime 正常运行时间 Thanks 是和不是 有系统特定查询正常运行时间的方式 例如 n
  • 使用 C# SQL 插入查询

    我目前遇到一个问题 正在尝试解决 我只是尝试在 C 的帮助下访问数据库并插入一些值 我尝试过的事情 有效 String query INSERT INTO dbo SMS PW id username password email VALU
  • 使用与列同名的变量对 data.table 进行子集化

    我想对 a 进行子集化data table使用与列同名的变量会导致一些问题 dt lt data table a sample c a b c 20 replace TRUE b sample c a b c 20 replace TRUE
  • 如何在jquery中的特定字符之后分割字符串[重复]

    这个问题在这里已经有答案了 这是我的代码 var string1 Hello how are you 我想要一个在 之后的字符串 即整个字符串中的 you 假设该字符串始终有一个 字符 并且我希望该字符之后的所有字符串都位于 jquery
  • 有没有办法将系统日志消息重定向到标准输出?

    我有一个可以以两种模式运行的应用程序 使用 CLI 或作为守护程序 我在用syslog 用于记录 但是 当在 CLI 模式下运行时 我想要所有日志记录 除了那些标记的日志记录LOG DEBUG 消息发送到控制台而不是记录 我尝试过使用set
  • 异步生成器和 Observables 之间有什么区别?

    异步生成器 一个示例案例是可读流 可观测值 处理异步数据流的基本协议 这两种方法似乎都是解决异步数据流同一问题的不同方法 除了品味问题之外 两者之间还有实际区别吗 从建议的API描述来看 observables 可以有多个订阅者 广播 异步
  • tf.audio.decode_wav 如何获取其内容?

    我正在尝试使用以下命令将一些音频文件拉入 Tensorflowtf audio decode wav 我可以看到有人正在考虑在文档中提供更多信息 但是有人有任何关于这应该如何工作的示例吗 tf audio decode wav conten
  • 从深度缓冲区获取真实的 z 值

    正如预期的那样 从着色器中的深度缓冲区采样会返回 0 到 1 之间的值 给定相机的近剪裁平面和远剪裁平面 如何计算此时的真实 z 值 即距相机的距离 From http web archive org web 20130416194336
  • 将类保存到二进制文件中 - Python

    我知道可以使用以下方法将类保存到 C 中的二进制文件中 file write Class variable size of class amount of saves file where to save 或类似的东西 我想在 python
  • MailApp.sendEmail 错误消息 - “无权调用 sendEmail”[重复]

    这个问题在这里已经有答案了 当我更改电子表格中的某些内容时 onEdit 触发器运行 我可以看到我放入代码中的所有消息框 我的函数停在这一行 MailApp sendEmail emailAddress subject message 我从
  • 是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?

    我想分享我执行的测试场景的信息 并请您分享您在区域监控方面的经验 因此 我注册了两个相对的区域 A 和 B 半径为 5 公里 所需精度为 1 公里 它们之间的距离为 20 公里 但是 从 A 到 B 时 我没有收到任何 didEnterRe