javascript - 获取另一个地理坐标和距离

标签 javascript node.js mongodb mongoose

我想从我的 mongoDb 检索特定距离范围内的每个点。每个元素以这种方式存储其位置:[纬度,经度],其中纬度和经度是浮点值。

例如:我希望我的数据库中的每个点距 [48.862586, 2.352210] 最大 100 公里

计算我的引用点和所有其他引用点之间的距离,以了解其在限制距离下是否听起来不是一个好主意...有没有办法询问谷歌地图API或另一个(或我自己) )这样做?

最佳答案

感谢@AllanNienhuis,他让我处于良好的领先地位。我使用 Node.js + Mongoose 的解决方案:

在 Event.js 中:

var mongoose = require('mongoose');
var EventSchema = new mongoose.Schema({
    name: String,
    pos : [Number],
    type: String
});
EventSchema.index({ pos : '2dsphere' });
module.exports = mongoose.model('Event', EventSchema);

在 eventController.js 中

exports.near = function(req, res) {
    var point = JSON.parse(req.body.point);
    var max = parseInt(req.body.max);
    console.log(point);

    Event.geoNear(point.pos, { spherical : true, maxDistance : max }, function (err, results, stats) {
        if (err) res.json(JsonResponse.get(Code.generic_error, {error: err}));
        else res.json(JsonResponse.get(Code.valid, results ));
    });
};

工作起来就像一个魅力!

关于javascript - 获取另一个地理坐标和距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29417241/

相关文章:

javascript - 通过多次调用将对象顺序插入数组

java - Mongodb 未知错误?

javascript - HTML 5 表单输入验证

javascript - 切换 Font Awesome 不起作用

javascript - 根据用户输入隐藏/显示 HTML 页面的部分内容

javascript - 如何使用jquery更改数据属性的子元素

php - MongoCursorException 被抛出,但没有被 Lithium 中的 try/catch 捕获

node.js - NodeJS v12.13.0 中的私有(private)静态方法 - 语法错误

node.js - 如何正确地将更改推送到 Heroku

javascript - 无法将代理与 puppeteer 一起使用。错误 : ERR_NO_SUPPORTED_PROXIES gets thrown