2015-05-11 2 views
3

я занимаюсь разработкой маячка обнаружения приложений с использованием Objective C и я получаю значение радиомаяка, как следоватьПолучить Расстояние от CLProximity

CLBeacon (uuid:<__NSConcreteUUID 0x174223ee0> XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, major:0, minor:1, proximity:2 +/- 0.32m, rssi:-49) 

в этом значении я хочу, чтобы получить близость, как +/- 0.32m значения, но тогда я, обращающийся к значение близости я не получаю его, как я могу получить доступ к этому значение может кто-нибудь помочь мне с этим я использую новейший IOS SDK

ответ

5

CLProximity не сообщит расстояние в метрах это будет просто дать вам цените в

CLProximityUnknown, 
CLProximityImmediate, 
CLProximityNear, 
CLProximityFar 

Чтобы найти расстояние в метрах (например, маяк находится в диапазоне 15 метров), вам нужно посмотреть this документ. Формула # 19 на странице 3 и в основном он делает это:

Received Signal Strength is related to distance using the equation below. 
RSSI [dBm] = -10n log10 (d) + A [dBm] 

Где
является мощность принимаемого сигнала в дБм на 1 метр - вам нужно калибровать это в вашей системе. Поскольку вы калибруете на известном расстоянии, вам не нужно учитывать частоту вашей передачи, и это упрощает уравнение. (Просто поместите IBeacon в пределах 1 метра, и измерить его RSSI)

п является распространение pathloss показатель т.е. 2,7 до 4,3 (Свободное пространство имеет п = 2 для справки, если есть стены будет больше).

dрасстояние от отправителя в метрах

Так у вас есть все значения, кроме г, вам нужно вычислить д с использованием упомянутой формулы.

EDIT: Точность
CoreLocation также предоставляет accuracy свойство для CLBeacon. Вы правы, это предусмотрено в метрах, но показывает, насколько точны измерения.

В вашем случае это показывает, что близорукость маяка CLProximityNear, и точность равна +/- 0,32 м.

Вот документация о 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; 
+0

спасибо за ответ l0gg3r, но когда я получаю значения от маяка я вижу что-то вроде этого 'близости: 2 +/- 0.32m' в том, что и можно увидеть 0.32m показаны, есть ли способ получить доступ к этому значению? –

+0

@CodingISLife да, конечно, это свойство точности, см. Мое редактирование. – l0gg3r

+0

спасибо, можем ли мы построить связь между точностью и расстоянием? –

Смежные вопросы