Я использую mongoDB для хранения данных о местоположении GPS в виде этого документа GeoJSON.
{"тип" : "точка", "координаты" : [33.313183, 44.465632]}
{"тип" : "точка", "координаты" : [33.2926487, 44.4159651]}
Обновление: я также обеспечил индекс 2dspher, как показано ниже.
db.test.ensureIndex( { loc : "2dsphere" } )
Я получил координаты с карт Google. Теперь, если я ищу с помощью этой команды, я не могу преобразовать полученные расстояния в километры.
db.runCommand({geoNear: 'test', spherical: true, near: {type: "Point" , coordinates: [33.2926487, 44.4159651]}})
результат следующий
"results" : [
{
"dis" : 0.0033427770982422957,
"obj" : {
"_id" : ObjectId("54a96f348fa05fcaed637a22"),
"loc" : {
"type" : "Point",
"coordinates" : [
33.2926487,
44.4159651
]
}
}
},
{
"dis" : 5764.7060911604085,
"obj" : {
"_id" : ObjectId("54a96f4c8fa05fcaed637a23"),
"loc" : {
"type" : "Point",
"coordinates" : [
33.313183,
44.465632
]
}
}
}
]
Ожидается, что первый результат будет равен нулю, поскольку это та же точка, которую я хочу получить на расстоянии от координат источника = назначения, но все же имеет значение.
второе значение, которое я не могу преобразовать в километры, в калькуляторе расстояний Google составляет около 5,26 км.