Если ваш радиус мал по сравнению с размером Земли, то вы, вероятно, можете обойтись простым 2D-пифагором, а не дорогой трехмерной сферической геометрией. Это, вероятно, менее верно, чем ближе вы к полюсам, так что я надеюсь, что вы не наносите на карту пингвинов или белых медведей!
Далее, подумайте о ограничивающих рамках для вашей проблемы. Вы знаете, что они должны находиться в пределах +/- $ радиуса поисковой точки. Преобразуйте радиус поиска в градусы и найдите все записи, где широта / долгота находится в пределах поля, определенного центром поиска +/- $ radiusindegrees.
Если вы сначала выполните такой поиск и составите список возможных совпадений, вам останется только отфильтровать углы окна поиска из полученного набора данных. Если вы вернете широту / долготу совпадающих точек, вы можете рассчитать расстояние в PHP и избежать его расчета для всех точек в таблице. Это имело смысл?
используйте базу данных, чтобы найти все, что вписывается в квадратную ограничительную рамку, а затем используйте PHP для фильтрации тех точек, которые находятся за пределами желаемого радиуса.