Ich habe in einer Klasse Objekte mit Geokoordinaten.
In einem Listview mache ich eine Umkreisabfrage, also zeige alle Objekte, die in einem Umkreis von 10 km zu einem gegebenen Punkt liegen. Zu diesem Zweck habe ich mir die folgenden Condition gebaut, die ich dann in den Listview einsetze:
(10 > 6371 * ACOS( COS(RADIANS(50.001231413093)) * COS(RADIANS(GEO_lat)) * COS(RADIANS(GEO_lon) - RADIANS(8.2762513334082)) + SIN(RADIANS(50.001231413093)) * SIN(RADIANS(GEO_lat))))
Die erste Zahl, die "10" ist der definierte Umkreis. Die Formel habe ich schon einige Male überprüft, sie gibt den Abstand zwischen 2 Punkten auf der Erdoberfläche aus.
Nun ist es so, dass wenn ich auf einen Umkreis von 10 km prüfe, bekomme ich keine Ergebnisse. Auf bei 9 km bekomme ich keine Ergebnisse. Wohl aber bei 7,8,11 und 12 km.
Wenn ich direkt in die Datenbank gehe und die Condition in die WHERE Klausel einsetze, bekomme ich bei allen km-Angaben Ergebnisse.
Ich habe keine Idee, woran das liegen könnte. Muss ja etwas damit zutun haben, wie die Condition an die DB übergeben wird, oder?