Du bruger MongoDB 2.6.1 eller nyere, fordi den kode, du ser på, blev tilføjet som en rettelse til en JIRA-13666 problem.
Problemet var, at nogle $near-forespørgsler ville crashe MongoDB-serveren, når de blev kaldt med ældre koordinater, der er uden for rækkevidde.
Du sender sandsynligvis koordinater, der er uden for rækkevidde. Den del af koden, der kontrollerer længde- og breddegrad, når der udføres $near-forespørgsler med maks. afstand (GeoParser::parsePointWithMaxDistance
metode i geoparcerpp. ):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Hvis koordinaterne er uden for området centroid.flatUpgradedToSphere
vil være falsk, og det vil forårsage den fejl, du modtager.
Du bør enten ændre dine koordinater til at være inden for rækkevidde eller indstille spherical
parameter til false for at undgå at få denne fejl.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)