Устройства Bluetooth с низкой энергией (BLE) не сообщают о своем местоположении; все, что они делают, транслируется кортежем: (UUID, Major, Minor). Ранжирование устройств BLE аппроксимируется исходя из принятой мощности сигнала, при этом любая применяемая к нему дистанционная мерка никогда не будет на 100% точнее.
Из-за этого вы не сможете точно определить длину/длину определенного iBeacon. Все, что вы знаете, это то, что оно находится на небольшом расстоянии от текущего местоположения вашего телефона. Вы даже не получаете направление - сила сигнала является одномерной величиной и даже не связана с расстоянием. Он может быть модифицирован свинцовыми стенками, помехами сигнала, повышением сигнала и многими другими факторами.
Короче говоря, iBeacons не сообщают об их широте/длине и расстоянии от вас до определенного iBeacon пока не представляется возможным с достаточной степенью точности. Лучшее, что вы можете сделать, это сказать: «Я обнаружил iBeacon, и мое текущее местоположение (lat/long). IBeacon, вероятно, находится в пределах х метров». Где x основано на силе сигнала и снабжено оговоркой, что это смутное приближение.
Edit:
В качестве альтернативы можно записать широту/долготу местоположения, где вы ожидаете размещения ваших iBeacons, а затем настроить сервер где-то (или вы можете просто закодировать это правильно в сборку, если вас не волнует необходимость обновить ее на лету), которая переведет пара Major/Minor в lat/long, используя поиск базы данных, который вы создаете.
Привет, Ян, спасибо за ответ. Если это так, то как оценивает внутренний sdk график из комнаты на основе вашего относительного местоположения к маякам http://estimote.com/indoor/? Я бы подумал, что маяки должны знать расстояние и направления, чтобы справиться с этим? – Matt
Чтобы использовать функциональность Estimote Indoor, ваша задача - определить, где маяки находятся в вашем пространстве, используя «ESTLocationBuilder». Используя комбинацию оценки силы сигнала и расстояния и триангуляции, они могут позиционировать вас в пространстве, используя известные физические местоположения маяков. Я не уверен, как они оценивают ориентацию, но это может быть комбинация вышеуказанного позиционирования с акселерометром устройства; сначала вычислите базовый уровень, затем используйте акселерометр оттуда, чтобы синхронизировать ориентацию. –