Сохранение последней отправленной широты и долготы в общих настройках и вычисление расстояния между последним местоположением и текущим местоположением. Если расстояние больше, обновите новое местоположение до сервера.
Для вычисления расстояния используйте эту функцию
private float calculateLocationDifference() {
float[] dist = new float[1];
Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), currentLocation.getLatitude(), currentLocation.getLongitude(), dist);
return dist[0];
}
Обращаем ваше внимание, что непрерывное определение местоположения разряжает батарею пользователя быстрее.