- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个 iOS 应用程序,我需要在其中知道设备与信标的确切距离和方向。我正在使用 Estimote 信标。
我使用了 iOS 的 CLLocation 和 Estimote 的框架,但它们都给出了不正确的距离值。此外,值波动很大,信标甚至多次进入未知状态(精度-1.000)。
我也试过使用这里给出的公式:
Understanding ibeacon distancing
但在 iOS 中,似乎无法获取 Beacon 的 txPower 或测量功率。
我搜索了很多,但没有找到令人满意的准确计算距离的方法。
有没有其他方法可以帮助我准确地找到 Beacon 的 iOS 设备的距离和方向?
最佳答案
距离是通过将接收到的信号强度 (RSSI) 与信标的广告发射功率 (txPower) 进行比较来计算的,因为理论上信号强度与距离的平方成反比。
但是还有许多其他因素会影响 RSSI,包括障碍物、天线方向以及可能的多路径(反射)。因此很难根据这些信息准确测量距离。
另一种测量距离的方法是使用往返时间 (RTT):您向信标发送一些内容,然后测量返回所需的时间。但这需要固定的响应时间,并且在这种尺度(米)上,这里和那里可能存在足够多的可变延迟,可能会严重影响计算。
方向需要三角测量或多个定向天线,我认为在这种情况下情况并非如此。
简而言之,您可以大致了解距离(这就是为什么它有利于接近警报),但准确的距离或方向需要不同的技术。
为什么需要它们?根据您的具体情况,可能有替代方案。
编辑
如果您周围有大量信标,并且您知道它们的确切位置,则可能会执行以下操作:
当然,根据SDK提供的信标测距的实际精度,结果可能或多或少准确。您拥有的信标越多,您应该能够获得的越精确(通过仅选择返回一定距离的信标,或者在计算解决方案时消除与其他信标不“兼容”的信标)。
关于ios - 从信标确定 iDevice 的距离和方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677199/
我是一名优秀的程序员,十分优秀!