sql >> Database >  >> NoSQL >> MongoDB

Verkeerde afstandsberekening met MongoDB

MongoDB gaat ervan uit dat de coördinaten in (long, lat) . zijn formaat. Als je afstanden met de hand berekent met Grootcirkelafstand, zie je wat er aan de hand is:

> 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 neemt coördinaten in (lat, long) formaat, dus als u dezelfde invoer geeft, ziet de Google-interpretatie er als volgt uit:

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



  1. Hoe geneste $ lookup zoeken in MongoDB?

  2. Eenvoudige inlogpagina in nodejs met express en paspoort met mongodb

  3. Getallen opmaken in SQL

  4. Hoe de waarde van een sleutel voor alle documenten in een MongoDB-verzameling optellen?