MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Falsche Entfernungsberechnung mit MongoDB

MongoDB geht davon aus, dass Koordinaten in (long, lat) angegeben sind Format. Wenn Sie Entfernungen per Hand mit der Großkreisentfernung berechnen, sehen Sie, was vor sich geht:

> from math import acos, sin, cos, radians
>
> long_x, lat_x = [radians(y) for y in [52.473266, 13.45494]]
> long_y, lat_y = [radians(y) for y in [52.497309, 13.39385]]
>
> acos(sin(lat_x) * sin(lat_y) + cos(lat_x) * cos(lat_y) * cos(long_x - long_y)) * 6371.0
7.27362435031

Google akzeptiert Koordinaten in (lat, long) Wenn Sie also dieselbe Eingabe bereitstellen, wird Google wie folgt interpretiert:

> acos(sin(long_x) * sin(long_y) + cos(long_x) * cos(long_y) * cos(lat_x - lat_y)) * 6371.0
4.92535867182