Нет, использование BigDecimal
вместо double
существенно не повысит точность этого алгоритма.
Основной источник ошибки - ошибка моделирования: вы используете формулу, которая предполагает, что Земля идеальная сфера. Это означает, что результат может быть ошибочным на 0,5%. Ошибка округления при использовании double составляет порядка 0,000000000001%.
Чтобы получить более точные результаты, вы можете использовать, например, формулы Винсенти , в которых предполагается, что Земля является эллипсоидом, но его труднее реализовать, чем расстояние большого круга. Чтобы получить еще более точные результаты, следует учитывать местную топографию, что еще сложнее.
Для дальнейшего чтения: https://en.m.wikipedia.org/wiki/Geographical_distance