Вы можете найти понятие, известное как трилатерация или мультилатерация. Учитывая, что вы знаете положение как минимум 3 маяков, расположенных таким образом, чтобы они были раздельными, но с перекрытием сигналов, вы можете найти произвольную точку между этими маяками.
Итак, что нужно вашему мобильному приложению:
1) Знать положение каждого маяка (например, х, у) перед рукой. Эти позиции могут быть произвольными, если они последовательно применяются ко всем маякам в системе координат
2) Сканирование рекламных данных каждого маяка, которые должны включать RSSI этого маяка. Вы можете использовать это для оценки расстояния каждого обнаруженного маяка от вашего телефона.
3) Зная положение каждого маяка и расстояние от вашего телефона до каждого, вы можете вычислить положение телефона относительно маяков, используя функцию мультилатерации. Множество библиотек, которые могут это сделать, могут работать на основе алгоритма нелинейных наименьших квадратов.
Я сделал выше для некоторых приложений для навигации внутри помещений, и качество и точность сильно зависят от вашего положения маяка. Вы должны убедиться, что в любой области, которую вы хотите охватить, есть 3-4 маяка, расположенных поблизости, чтобы обеспечить приличные показания RSSI.