Você está usando o MongoDB 2.6.1 ou superior porque o código que está vendo foi adicionado como uma correção para um JIRA-13666 questão.
O problema era que algumas consultas $near travavam o servidor MongoDB quando chamadas com coordenadas legadas que estão fora do alcance.
Você provavelmente está enviando coordenadas que estão fora de alcance. A parte do código que verifica a longitude e a latitude ao fazer consultas $near com distância máxima (
GeoParser::parsePointWithMaxDistance
método em geoparser.cpp
):bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Se as coordenadas estiverem fora do intervalo
centroid.flatUpgradedToSphere
será false e isso causará o erro que você está recebendo. Você deve alterar suas coordenadas para estarem dentro do alcance ou definir
spherical
parâmetro para false para evitar esse erro. Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)