Я знаю, что это старый вопрос, но я думаю, что есть немного более простое решение.
Это пример, но он не работает при пересечении 0 градусов, хотя вы можете сместить все широты / долготы для настройки.
Общее решение работает очень хорошо для упорядочения, но использует теорему Пифагора для вычисления относительного расстояния (примечание: в sqlite нет функции квадратного корня, но это не имеет значения).
String calcDistance = "( ( (abs(" + cLat + ") - " + Math.abs(lat) + ") * (abs(" + cLat + ") - " + Math.abs(lat) + ") )" +
"+ ( (abs(" + cLng + ") - " + Math.abs(lng) + ") * (abs(" + cLng + ") - " + Math.abs(lng) + ") ) ) as calc_distance";
Если вам нужно зафиксировать это расстояние, вы можете настроить его, добавив 90 ко всем широтам и 180 ко всем долготам. Тогда вы могли бы избавиться от этих неприятных функций пресса.