Stai utilizzando MongoDB 2.6.1 o versioni successive perché il codice che stai guardando è stato aggiunto come correzione per un JIRA-13666 problema.
Il problema era che alcune query $near andavano in crash il server MongoDB quando venivano chiamate con coordinate legacy fuori portata.
Probabilmente stai inviando coordinate fuori portata. La parte del codice che controlla longitudine e latitudine quando si eseguono query $vicino con distanza massima (GeoParser::parsePointWithMaxDistance
metodo in geoparser.cpp
):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Se le coordinate sono fuori dall'intervallo centroid.flatUpgradedToSphere
sarà falso e ciò causerà l'errore che stai ricevendo.
Dovresti cambiare le tue coordinate in modo che rientrino nell'intervallo o impostare spherical
parametro su false per evitare di ricevere questo errore.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)