use*_*745 8 geospatial mongoose mongodb
在我的应用程序中,我正在尝试使用,RentModel.find({prop_location:{$ near:[msg.lat,msg.lng],$ maxDistance:500}},function(err,docs){}我只有一个具有纬度,经度的旧金山数据库中的值.现在,
怎么了 ?
距离的单位是多少?我想知道距离5公里(公里)范围内的一切.将db.executeCommand解决我的问题?需要检查.
提前致谢.
use*_*745 10
最后我找到了问题的答案.理论上经度是x轴,纬度是y轴.但我们习惯于纬度 - 经度而不是经度 - 纬度...所以我搜索的方式是错误的
$near : [msg.lat, msg.lng]
Run Code Online (Sandbox Code Playgroud)
当我将其更改为$ near附近:[msg.lng,msg.lat]时,即使使用5KM它也开始工作......所以订购就是问题所在.
您需要将maxdistance值除以111.12(一度约为111.12公里),将度半径转换为km距离.
所以你可以试试这个
RentModel.find({prop_location : { $near : [msg.lat, msg.lng], $maxDistance : 500/111.2}})
Run Code Online (Sandbox Code Playgroud)
但是同样的工作不同是球体查询,你必须将度半径除以地球半径6371以使用km值
| 归档时间: |
|
| 查看次数: |
4576 次 |
| 最近记录: |