Hallo liebes Forum!
Jetzt habe ich mich extra hier angemeldet, um folgende Seltsamkeit mit euch zu teilen. Vielleicht hat ja irgendwer eine Idee dazu:
Ausgangssituation sind eine Tabelle mit Geokoordinaten (ca. 90.000 Datensätze), eine Umkreissuche und Köln Porz.
Laut meiner Tabelle liegt Köln Porz auf 50.937 Länge und 6.97788 Breite.
Die Berechnung der Entfernung erledigt folgende Query:
SELECT ACOS( SIN( RADIANS( 50.937 ) ) * SIN( RADIANS( 50.937 ) ) + COS( RADIANS( 50.937 ) ) * COS( RADIANS( 50.937 ) ) * COS( RADIANS( 6.97788 ) - RADIANS( 6.97788 ) ) ) *6380 AS entfernung
In diesem Fall also von Köln Porz nach Köln Porz macht nach Adam Riese 0km - Mysql ist aber der Meinung hier kein Ergebnis liefern zu können und wirft NULL aus. Nun könnte man glauben, einer der MySQL Entwickler hätte etwas gegen Köln Porz - aber weit gefehlt. Verschiebe ich den Mittelpunkt um ca 25 Meter auf 50.9371 Länge und 6.9977881 Breite und führe die gleiche Berechnung (ohne eine Tabelle anzusprechen) aus, bekomme ich plötzlich die gewünschte 0 als Entfernung.
Von den oben genannten 90.000 Datensätzen waren ca. 2000 betroffen, die sich alle durch eine leichte Verschiebung (anhängen einer 1 ans Ende) korrigieren ließen.
Betroffen waren unzusammenhängende Koordinaten in D, AT und CH.
Getestet habe ich es auf
- Server Version: 5.1.73-log - Source distribution, Linux
- Server Version: 5.1.73 - Source distribution, Linux
- Server Version: 5.5.38 - MySQL Community Server (GPL), Win 7
Kann sich hier irgendjemand dieses Phänomen erklären?
Danke für Input und einen schönen Nachmittag!
Markus
Jetzt habe ich mich extra hier angemeldet, um folgende Seltsamkeit mit euch zu teilen. Vielleicht hat ja irgendwer eine Idee dazu:
Ausgangssituation sind eine Tabelle mit Geokoordinaten (ca. 90.000 Datensätze), eine Umkreissuche und Köln Porz.
Laut meiner Tabelle liegt Köln Porz auf 50.937 Länge und 6.97788 Breite.
Die Berechnung der Entfernung erledigt folgende Query:
SELECT ACOS( SIN( RADIANS( 50.937 ) ) * SIN( RADIANS( 50.937 ) ) + COS( RADIANS( 50.937 ) ) * COS( RADIANS( 50.937 ) ) * COS( RADIANS( 6.97788 ) - RADIANS( 6.97788 ) ) ) *6380 AS entfernung
In diesem Fall also von Köln Porz nach Köln Porz macht nach Adam Riese 0km - Mysql ist aber der Meinung hier kein Ergebnis liefern zu können und wirft NULL aus. Nun könnte man glauben, einer der MySQL Entwickler hätte etwas gegen Köln Porz - aber weit gefehlt. Verschiebe ich den Mittelpunkt um ca 25 Meter auf 50.9371 Länge und 6.9977881 Breite und führe die gleiche Berechnung (ohne eine Tabelle anzusprechen) aus, bekomme ich plötzlich die gewünschte 0 als Entfernung.
Von den oben genannten 90.000 Datensätzen waren ca. 2000 betroffen, die sich alle durch eine leichte Verschiebung (anhängen einer 1 ans Ende) korrigieren ließen.
Betroffen waren unzusammenhängende Koordinaten in D, AT und CH.
Getestet habe ich es auf
- Server Version: 5.1.73-log - Source distribution, Linux
- Server Version: 5.1.73 - Source distribution, Linux
- Server Version: 5.5.38 - MySQL Community Server (GPL), Win 7
Kann sich hier irgendjemand dieses Phänomen erklären?
Danke für Input und einen schönen Nachmittag!
Markus
Kommentar