Имея геолокацию найти расстояние между двумя точками - задача элементарная (вспоминаем школьную геометрию). Соответственно найти несколько точек, у который расстояния то-ли минимальное, то-ли не превышает заданную величину (те-же 50 км.) также особого труда не представляет. Хотя что делать, если населенные пункты А и В находятся в 50км, но между ними курсирует скоростной поезд, а пункты А и С - в трех километрах, но через высокогорный перевал или реку - с объездом в 100 км (да, бывает и так) ? В общем, мне кажется поиск по геолокации - не лучший способ решения проблемы.
А вот искать "по области" (или по населенному пункту) - уже перспективнее. Наиболее просто способ - "в лоб" выяснять у пользователя из какой он области. И тогда проблем нет. Но если исходить из геолокации - то проблема серьезная. Надо где-то искать соответствующую базу (по сути границ областей), потом решать задачу, в какую область угодила точка.... В общем весьма муторно.
Можно, например, спрашивать город, от которого по имеющейся открытой информации переходить к области. Или по области находить города - в том числе близлежайшие - такая карта расстояний имеется (правда, не заю, в свободном-ли доступе). На худой конец искать API Google-maps и тянуть информацию из него.
В общем, лучше для пет-проекта пока реализовать более простой подход (с явным указанием локации - населенного пункта), а потом, если сохраниться желание над проектом работать и его развивать - усложнять и вводить поиск уже по геолокации.