2016-10-12 9 views
0

Я изучаю и читаю несколько разных статей о том, что могут делать приложения iBeacons и связанные с маяком. Однако я не мог найти ответы на вопрос, который появился, когда я читал одну из этих статей.iBeacons: Обнаруживать ходьбу назад?

Возможно ли, чтобы один маячок посылал разные сигналы одновременно, чтобы приложение могло определить, движется ли человек вперед или назад?

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

Большое спасибо

ответ

0

Есть два основных подхода к решению этой проблемы, но оба имеют ограниченную надежность:

  1. Полное решение в помещении навигации, используя маяки в качестве небольшого строительного блока более крупной системы который оценивает позицию пользователя с течением времени. Используя такую ​​систему, вы можете определить, идет ли пользователь по неправильному пути, зная их текущую позицию и место назначения, и выясняя, увеличивается ли время, когда расстояние до места назначения становится больше или меньше по прошествии времени. Создание и использование такой системы намного сложнее, чем программирование приложения с использованием маяков, поэтому, хотя стоит упомянуть, это действительно выходит за рамки форума, такого как StackOverflow.com.

  2. Более простое решение с использованием двух или более маяков, один из которых находится в пункте назначения. Система определит, идет ли пользователь к месту назначения, просто используя оценку расстояния между пользователем и ближайшим маяком. Если вы используете библиотеку Beacon для Android, начиная с обновления приблизительно на 1 Гц, вы получите оценку расстояния в метрах до маяка, используя beacon.getDistance(). Если посмотреть, будет ли это число увеличиваться или уменьшаться между несколькими обратными вызовами, вы можете определить, приближается ли пользователь дальше или дальше.

Есть целый ряд предостережений для обоих растворов, в частности, второй:

  • оценки Маяка расстояния основаны на Bluetooth силы сигнала, так что точность ограничена радиопомех и многолучевого , Для отдельных оценок принято считать, что вы становитесь еще дальше или ближе, даже если вы стоите на месте.

  • Для преодоления шумовых эффектов, упомянутых выше, SDK-сигналы маяка используют несколько образцов мощности сигнала, чтобы сгладить оценки. По умолчанию в Android Beacon Library (и iOS CoreLocation) используется примерно 20 секунд усреднения, чтобы сгладить это. Но это вводит задержку на расстоянии, сообщая вам, где пользователь прямо сейчас, но где пользователь в среднем за последние 20 секунд. На Android вы можете настроить этот интервал усреднения на меньшее, но это увеличит частоту ошибок оценок.

Построение собственной системы, что делает это, следовательно, означает сделать много компромиссов между лагом, частотой ошибок и интервалами времени, над которым ближе/дальше определение может быть определен с достаточной точностью.Независимо от того, можете ли вы сделать это решение достаточно хорошо для вашего случая использования, действительно зависит от особенностей того, что вы пытаетесь выполнить. Ваш лучший выбор - экспериментировать с простым приложением и посмотреть, можете ли вы сделать его достаточно хорошо работающим для вашего случая использования.