【问题标题】:Find circles that intersects a point [duplicate]查找与点相交的圆[重复]
【发布时间】:2016-11-22 18:42:21
【问题描述】:

当我尝试在 mongodb 上运行此代码时遇到了麻烦

var partners = db.partners.find({})
var kmToRadius = function(km){
    var earthRadiusInKm = 6378.1;
    return km / earthRadiusInKm;
}
db.runCommand({
    $centerSphere: [ [partners.loc], kmToRadius(partners.km) ] :{
        $geoIntersects:{
            $geometry: { type: "Point", coordinates: [ -73.93414657, 40.82302903 ] }

            }
    }
})

我要做的是获取所有合作伙伴的位置(采用 geojson 格式),使用 $centerSphere 制作一个圆圈并验证是否与坐标相交。

我知道我不能以 GeoJson 格式存储圆,只能存储多边形,这变得很难做我想做的事。有人知道是否有另一种方法可以使这项工作?谢谢

【问题讨论】:

    标签: node.js mongodb geolocation geojson


    【解决方案1】:

    我的合作伙伴收藏是这样的:

    {
        "_id" : ObjectId("583315cfa9d41218cc9c833f"),
        "updatedAt" : ISODate("2016-11-21T15:42:07.703Z"),
        "createdAt" : ISODate("2016-11-21T15:42:07.703Z"),
        "name" : "partnerName",
        "mainEmail" : "email",
        "password" : "$2a$10$WJC6WzZNM8NyDKQgovJa.OICLOMV6Qp6xcGLE3fRcUGuBa8Zhy8qy",
        "km" : 10,
        "loc" : {
            "type" : "Point",
            "coordinates" : [ 
                -46.62217, 
                -23.668224
            ]
        },
        "rate" : 4,
        "nServices" : 35
    }
    

    但我想做的是为每个伙伴创建一个半径并检查哪些伙伴与一个点相交,而不是让伙伴在半径内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 2018-03-03
      • 2015-08-30
      • 2012-05-18
      相关资源
      最近更新 更多