У меня есть lat и lng, хранящиеся в базе данных firebase. Теперь я хочу получить их, а затем вычислить расстояние между моим текущим местоположением и этими точками, а затем отсортировать их в порядке возрастания расстояния в адаптере
Я могу получить широту и долготу, рассчитать расстояние и заполнить адаптер просмотра базы данных пожарной базы. Но в этом адаптере элементы не сортируются по расстоянию. Я хочу отсортировать их по расстоянию, вычисленному после извлечения предмета.
Код в FirebaseRecyclerAdapter внутри onBindViewHolder
lat = mLastLocation.getLatitude();
lng = mLastLocation.getLongitude();
lat1 = Double.parseDouble(model.getMylat());
lng1 = Double.parseDouble(model.getMylng());
loadLocationForThisUser(lat, lng, lat1, lng1);
holder.txt_distance.setText(distance);
И код для расчета расстояния
private void loadLocationForThisUser(Double lat, Double lng, Double lat1, Double lng1) {
//Create location from user coordinates
currentUser1 = new Location("");
currentUser1.setLatitude(lat);
currentUser1.setLongitude(lng);
//Create location from friend coordinates
friend1 = new Location("");
friend1.setLatitude(lat1);
friend1.setLongitude(lng1);
distanceNumeric = (int) (currentUser1.distanceTo(friend1)/1000);
Log.i("distanceNumeric", String.valueOf(distanceNumeric));
distance = (new
DecimalFormat("#.#").format((currentUser1.distanceTo(friend1)) / 1000)+ "
kms");
}
В настоящее время выходные данные представляют собой элементы, которые заполняются без какого-либо порядка сортировки на основе рассчитанного расстояния. Я ожидаю, что адаптер будет заполнен элементами в порядке увеличения расстояния, которое было рассчитано.