Я играю с гео особенности MongoDB в Java и я столкнулся со следующей проблемой запуска команды «geoNear»:geoNear возвращает неправильное расстояние
Дано:
- Коллекция под названием «GEOENTITIES 'с объектами GeoJSON
Эта коллекция индексируется с кодом Java (с использованием Джонго):
collection.ensureIndex("{ coordinates : '2dsphere' }");
документа (названный 'A' для примера) существует с координатами равно [48,0, 9,0]
При выполнении:
{geoNear: 'GEOENTITIES', near: [48.0,9.1], spherical: true, num: 5, distanceMultiplier: 6371}
Тогда:
У меня есть результат команды :
{ "dis" : 11.11949328574724 , "obj" : { "coordinates" : [ 48.0 , 9.0] , "_id" : { "$oid" : "51a62a5485878b1ceca38ab3"} , "name" : "Toto"}}
Почему расстояние 11,11 (км), тогда как рассчитанное один из http://williams.best.vwh.net/gccalc.htm - например, - 7,46? Я думаю, что я сделал что-то не так, но не понимаю, может быть, кто-то более экспериментирует, может помочь?
Разница обусловлена тем, что я добавил параметр расстояния к команде с радиусом земли в километрах. Но удаление этого аргумента дает мне следующий результат: 0.0017453293495129868. Так что не то же самое, что и вы, это перепробовано, я буду расследовать больше завтра об этом. Спасибо за ваш ответ. – kij
Oups извините, не видел параметр расстояния в вашем коде. Ваш результат странный, он должен быть добавлен в километры, а не в радиус, верно? – kij
Ha, просто измените вторую координату в вставке для правильного значения <9.0> вместо <9.1> – kij