Hallo,
ich habe in der DB einige (viele) GeoKordinaten Einträge.
Nun will ich Einträge, die eine max. Entfernung zu einem bestimmten fix Punkt haben ausgeben.
Die Koords sind dynamisch d.h. können sich immer wieder ändern.
Zurzeit kann ich das nur bewerkstelligen, wenn ich erst alle Einträge aus der DB hole und dann in einer Schleife einzeln überprüfe, ob die Entfernung des Iterator Punktes zum fix Punkt in Ordnung ist.
Das ist mir aber aufjedenfall nicht performant genug, leider fällt mir auch nix anderes ein.
Die Formel zur Entfernungsberchnung wäre ca.:
(x und y = eine double mit 5-10 Stellen nachm Komma)
r = 6378,137
e = ARCCOS[ SIN(x1)*SIN(x2) + COS(x1)*COS(x2)*COS(y2-y1) ]
Entfernung = e * r
D.h. bei 1000 Einträge müsste ich 1000x diese Formel berechnen.
Hätte jemand ne Idee mit welcher Methodik man an die Sache ran gehen sollte?
ich habe in der DB einige (viele) GeoKordinaten Einträge.
Nun will ich Einträge, die eine max. Entfernung zu einem bestimmten fix Punkt haben ausgeben.
Die Koords sind dynamisch d.h. können sich immer wieder ändern.
Zurzeit kann ich das nur bewerkstelligen, wenn ich erst alle Einträge aus der DB hole und dann in einer Schleife einzeln überprüfe, ob die Entfernung des Iterator Punktes zum fix Punkt in Ordnung ist.
Das ist mir aber aufjedenfall nicht performant genug, leider fällt mir auch nix anderes ein.
Die Formel zur Entfernungsberchnung wäre ca.:
(x und y = eine double mit 5-10 Stellen nachm Komma)
r = 6378,137
e = ARCCOS[ SIN(x1)*SIN(x2) + COS(x1)*COS(x2)*COS(y2-y1) ]
Entfernung = e * r
D.h. bei 1000 Einträge müsste ich 1000x diese Formel berechnen.
Hätte jemand ne Idee mit welcher Methodik man an die Sache ran gehen sollte?
Comment