gpt4 book ai didi

javascript - 使用 Meteor/Mongo 手动查找最近的坐标

转载 作者:行者123 更新时间:2023-12-03 10:02:26 25 4
gpt4 key购买 nike

我使用了 $near 命令返回我的坐标附近的城市列表。

 Villages.find({loc: {$near: [lat,long], $maxDistance: 2}}, 
{fields: {name: 1, _id: 0}},
{limit: 1}
);

这可行,但我遇到了一些问题,即您可以靠近大城市的边缘,但从技术上讲仍然比您所在的城市更接近下一个邻近城市的中心。出于这个原因,我会喜欢将结果与人口进行加权(只有数据我必须猜测一个城市是否很大)。因为我不相信我可以用 $near 做到这一点,所以我需要手动(haversine 或其他方式)选择最近的城市。我该怎么办?

最佳答案

如果这有效的话那就太好了。您的代码中有一个轻微的技术错误,可能是由于:

 Villages.find({loc: {$near: [long,lat], $maxDistance: 2}}, 
{fields: {name: 1, _id: 0}},
{limit: 1}
);

Mongo 使用long, lat 而不是lat, long。还值得一提的是,此模式已被弃用,取而代之的是:

loc: { $near : {
$geometry : [long, lat],
$maxDistance : 2
} }

其中 loc 看起来像这样:

loc: {
type : "Point",
coordinates : [ long , lat ]
}

请务必也为它们建立索引:MyCollection._ensureIndex({"loc": "2dsphere"});

关于javascript - 使用 Meteor/Mongo 手动查找最近的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com