ich eine Liste der Standorte haben, nach diesem Muster:berechnen Abstand zwischen einem Ort und einer Liste von Orten
[1] = {lat = -40.2452, longitude = -76.2489},
[2] = {lat = -40.2452, longitude = -76.2489},
[3] = {lat = -40.2452, longitude = -76.2489},
[4] = {lat = -40.2452, longitude = -76.2489}
und localition
location = {lat = -40.2452, longitude = -76.2489}
und ich möchte Welche der Orte berechnen Dies in der Ferne.
Ich habe eine Formel gefunden, die den Abstand zwischen zwei Punkten berechnet.
aber wenn diese Liste groß ist!
gibt es einen schnelleren Weg?
oder können Sie die Liste in einer Schleife durchlaufen?
FOR LOCATION IN LISTLOCATION DO
IF GETDISTANCE(LOCATION, LOCATION2) <= DISTANCE
SAVE THIS LOCATION
END
END
Diese Werte sind ein Beispiel
Wenn Sie sich Sorgen um die Leistung machen, und Sie sind auf Android, warum nicht Ihre Daten in eine SQLite-Datenbank setzen und abfragen. Mehr in dieser Antwort: http://stackoverflow.com/questions/3126830/query-to-get-records-based-on-radius-in-sqlite –
Ich weiß, ist zum Beispiel Zweck, aber alle Ihre Standorte sind die gleichen. –
Ihr Beispiel-Array enthält alle die gleichen Elemente. Wenn es eine hohe Wahrscheinlichkeit gibt, dass es viele doppelte Objekte gibt, würde das Entfernen der Objekte vor dem Aufrufen von "GETDISTANCE (LOCATION, LOCATION2)" die Leistung erhöhen. – damjanh