我正在开发使用目标C检测应用程序,并且我的信标值如下
CLBeacon (uuid:<__NSConcreteUUID 0x174223ee0> XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, major:0, minor:1, proximity:2 +/- 0.32m, rssi:-49)
在此值中,我想将接近度作为+/- 0.32m
值,但后来我正在访问接近值,我没有得到它,我如何访问此值,任何人可以帮助我解决这个问题,我正在使用最新的IOS SDK
clproximity不会告诉以米为单位它只会在
中给您带来价值CLProximityUnknown,
CLProximityImmediate,
CLProximityNear,
CLProximityFar
要在米中找到距离(例如,信标在15米的范围内),您需要查看此文档。公式是第3页的#19,基本上是这样做的:
Received Signal Strength is related to distance using the equation below.
RSSI [dBm] = -10n log10 (d) + A [dBm]
其中
A 是DBM中1米的接收信号强度 - 您需要在系统上校准它。由于您正在以已知距离进行校准,因此您无需考虑传输的频率,这简化了方程式。(只需将iBeacon放在1米范围内,然后测量它是RSSI)
n 是传播路径指数即2.7至4.3(自由空间具有n = 2的参考,如果有墙壁,则会更大)。
d 是距发件人米的距离
因此,除了 d 外,您都有所有值,您需要使用上述公式来计算 d 。
编辑:准确性
CoreLocation还为CLBeacon
提供accuracy
属性。您是正确的,它以米为单位,但显示了测量的准确性。
在您的情况下,它表明信标接近是clproximitynear,并且准确性为/- 0.32m。
这是有关accuracy
/*
* accuracy
*
* Discussion:
* Represents an one sigma horizontal accuracy in meters where the measuring device's location is
* referenced at the beaconing device. This value is heavily subject to variations in an RF environment.
* A negative accuracy value indicates the proximity is unknown.
*
*/
@property (readonly, nonatomic) CLLocationAccuracy accuracy;