Может быть, я неправильно понял вопрос, но если у вас есть:
- [X1, Y1] - координаты вашей позиции
- [Xn, Yn] - для каждого города
Тогда почему бы просто не рассчитать расстояние по простой формуле sqrt((X1-Xn)^2 + (Y1-Yn)^2)
?
Вы можете оптимизировать его далее, сделав несколько умных выборов, чтобы получить только окрестности позиции из БД, а затем выполнить измерение расстояния в этих городах.