mesh сети
обнаруживаешь точки доступа в доступном диапазоне (которые считаются стационарными точками доступа) и (опционально) обнаруживаешь другие телефоны в радиусе, которые работают по тому же протоколу.
Это подход foursquare и они, насколько я помню, предлагают их геолокацию как сервис, и можно просто подключить их за какую-то плату
Либо можно собрать свою такую же библиотеку из open-source, например на базе libp2p
Я могу поделиться исходниками примера, но не претендую на то, что это будет работать лучше чем в foursquare, хотя и бесплатно