Похоже, что вычисление, на которое вы ссылаетесь, использует сферическую систему координат. Формула почти правильная. Частью того, что может отбросить ваши расчеты, является радиус, который вы используете. 69.09 - это радиус сферы (в данном случае, земли). Как вы, возможно, знаете, Земля на самом деле не сфера, скорее эллипсоид. Я бы предложил попробовать следующую формулировку:
3963 * acos(sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($lon1 - $lon2)));
Для получения более точных результатов вам понадобятся расчеты Винсента или Хаверсайна.
РЕДАКТИРОВАТЬ: Чтобы уточнить, я не пытаюсь подразумевать, что большая часть ошибки, о которой вы сообщаете, связана с использованием вычисления сферических координат. Эта ошибка намного меньше, чем вы видите. Корректировка формулы, которую я представил, должна была стать более четкой версией формулы, поскольку 69.09 было значением радиуса Земли, скорректированным по системе градусов, которое менее интуитивно, чем простое использование радианов. Кроме того, стоит отметить, что для расчета очень малых расстояний использование приведенной выше формулы является очень точным (до расстояний около 1 м), если система, выполняющая вычисления, работает с достаточным количеством десятичных знаков. Использование поплавка в современных вычислениях дает вам эту точность.