Получение географической долготы и широты iBeacon в iOS

Я хочу знать, знает ли кто-нибудь, как использовать данные, которые ibeacon отправляет на телефон, можете ли вы использовать их для расчета его долготы и широты. Учитывая тот факт, что я знаю долготу и широту телефона, используя основное местоположение (ios, objc), я подумал, что должен быть способ, чем использовать данные сигнала расстояния для расчета долготы и широты маяка. Любые идеи?

Я использую оценочные iBeacons и их SDK.


person Matt    schedule 08.10.2014    source источник


Ответы (1)


Устройства Bluetooth с низким энергопотреблением (BLE) не сообщают о своем местоположении; все, что они делают, это транслируют кортеж: (UUID, Major, Minor). Диапазон устройств BLE аппроксимируется на основе уровня полученного сигнала, поэтому любое измерение расстояния, применяемое к нему, никогда не будет точным на 100%.

Из-за этого вы не сможете точно определить широту/долготу конкретного iBeacon. Все, что вы знаете, это то, что он находится на небольшом расстоянии от текущего местоположения вашего телефона. Вы даже не получите направление — сила сигнала является одномерной величиной и даже не связана линейно с расстоянием. Он может быть изменен свинцовыми стенками, помехами сигнала, усилением сигнала и многими другими факторами.

Короче говоря, iBeacon по своей сути не сообщают о своей широте/долготе, и определение расстояния от вас до конкретного iBeacon пока невозможно с достаточной степенью точности. Лучшее, что вы можете сделать, это сказать: «Я обнаружил iBeacon, и мое текущее местоположение (широта/долгота). iBeacon, вероятно, находится в пределах x метров». Где x основан на силе сигнала и предоставляется с оговоркой, что это нечеткое приближение.


Изменить:

Альтернативой может быть запись широты и долготы мест, где вы планируете разместить свои iBeacons, а затем настроить сервер где-нибудь (или вы можете просто закодировать его прямо в сборке, если вы не беспокоитесь о том, чтобы обновлять его на the fly), который преобразует пару Major/Minor в широту/долготу с помощью созданного вами поиска в базе данных.

person Ian MacDonald    schedule 08.10.2014
comment
Привет Ян, спасибо за ответ. Если это так, как estimotes indoor sdk определяет комнату на основе вашего относительного местоположения по отношению к маякам estimote.com/ в помещении? Я бы подумал, что маяки должны знать расстояние и направления, чтобы справиться с этим? - person Matt; 09.10.2014
comment
Чтобы использовать функцию Estimote Indoor, вам нужно определить, где находятся маяки в вашем пространстве, используя ESTLocationBuilder. Используя комбинацию оценки отношения мощности сигнала к расстоянию и триангуляции, они могут позиционировать вас в пространстве, используя известные физические местоположения маяков. Я не уверен, как они оценивают ориентацию, но это может быть комбинация вышеуказанного позиционирования с акселерометром устройства; сначала рассчитайте базовую линию, а затем используйте акселерометр, чтобы синхронизировать ориентацию. - person Ian MacDonald; 09.10.2014