Nach der Android Documentation für Parse die Standardsortierung Reihenfolge sollte bereits nach Entfernung (am nächsten zu am weitesten) sein, es sei denn, Sie selbst eine andere Sortierreihenfolge angeben.
Auch möchten Sie vielleicht in den ParseQuery.whereWithin*
Methoden suchen, wie Sie nur wollen Standorte innerhalb einer bestimmten Anzahl von Meilen angeben, Kilometer usw.
Wenn alles andere fehlschlägt und die Sortierreihenfolge einfach nicht Möchten Sie an den zurückgegebenen Standorten arbeiten, können Sie sie immer selbst sortieren, indem Sie die von der Abfrage zurückgegebenen ParseObject
s durchlaufen und ParseObject.getParseGeoPoint("rest_location")
verwenden.
dass ein ParseGeoPoint
Objekt zurückkehren und Sie können folgende
ParseGeoPoint.distanceInKilometersTo(sLatlong);
Um den Abstand zu der Position des Benutzers zu erhalten und sortieren das dann tun.
Denn hier Referenz ist eine Probe Comparator
:
public class UserLocationComparator implements Comparator<ParseObject> {
private final ParseGeoPoint userLoc;
public UserLocationComparator(ParseGeoPoint userLoc) {
this.userLoc = userLoc;
}
@Override
public int compare(ParseObject po1, ParseObject po2) {
ParseGeoPoint loc1 = po1.getParseGeoPoint("rest_location");
ParseGeoPoint loc2 = po2.getParseGeoPoint("rest_location");
return loc1 == null ?
(loc2 == null ? 0 : 1) :
(loc2 == null ? -1 : Double.compare(userLoc.distanceInKilometersTo(loc1), userLoc.distanceInKilometersTo(loc2)));
}
}
und dann vorausgesetzt, Sie haben eine List<ParseObject> results;
einfach tun:
Collections.sort(results, new UserLocationComparator(sLatlong));
Sie wissen, dass Parse richtig herunterfährt? Im Januar 2017 wird ihr Service eingestellt. http://blog.parse.com/announcements/moving-on/ – Dom
Ja, das weiß ich. Ich benutze das nur für 3 Monate, um meine Idee zu bestätigen. – Anirudh
Als eine Randnotiz zu meiner Antwort, wenn Sie sagen, dass die Ergebnisse nicht distanzweise sortiert sind, überprüfen Sie die Reihenfolge der Ergebnisse in der 'FindCallback.done (...)' Methode? Sonst wo sonst suchen Sie nach der Reihenfolge der Ergebnisse? Vielleicht ändern Sie die Bestellung nach Bearbeitung der Ergebnisse selbst. –