-2
Ich frage mich, wie ich den nächsten Ort aus gegebenen Float-Werten erhalten könnte.Finde den nächsten Ort in einer ArrayList aus gegebenen Float-Werten
Ich habe eine ArrayList von Städten, die lat/long haben. Was ich tun möchte ist, die nächstgelegene Stadt anhand der angegebenen Koordinaten zu finden.
public class City {
private float lat;
private float lng;
//getters & setters
}
List <City> cities; // at this point "cities" contains several "city"
City city;
city = findNearest(lat, lng);
private City findNearest(float lat, float lng) {
for (City c: cities) {}
}
berechnen Sie einfach die Differenz zwischen Punkt X und Punkt Y mit [math] (https://www.mathsisfun.com/algebra/distance-2-points.html) und speichern Sie den kleinsten in einer Variablen. – SomeJavaGuy
Verwenden Sie eine Variable, um zu verfolgen, welche Ihrer Meinung nach am nächsten ist, und aktualisieren Sie sie, während Sie die Schleife durchlaufen. Finde für jede Stadt die Entfernung. Wenn es näher ist als das, von dem Sie bisher dachten, dass es am nächsten ist, weisen Sie es der Variablen zu. Veröffentlichen Sie auch keine Code-Fragmente, die keinen Sinn ergeben. – khelwood
Was ist Ihr Ansatz? Die Entfernung zwischen 2 Geo-Koordinaten zu finden, ist ein wenig komplizierter als @KevinEsche, aber die einfache Distanz ist ein guter Anfang. – f1sh