2015-04-23 126 views
1

我在集合中每个都有一些多边形作为文档。我需要找到半径50公里内最近的一个点的多边形。 Mongo db中的$ near将适用于积分。有没有办法使用$ near来搜索某个点的最近多边形。

回答

2

您可以使用$near开箱即用。 $near找到一个点的最近几何图形。几何不一定是分:

> db.test.drop() 
> db.test.insert({ 
    "loc" : { 
     "type": "Polygon", 
     "coordinates": [[[10.0, 0.0], [11.0, 0.0], [11.0, 1.0], [10.0, 1.0], [10.0, 0.0]]] 
    } 
}) 
> db.test.ensureIndex({ "loc" : "2dsphere" }) 
> db.test.find({ 
    "loc" : { 
     "$near" : { 
      "$geometry" : { 
       "type" : "Point", 
       "coordinates" : [8.5, 12.1] 
      } 
     } 
    } 
}, { "_id" : 0, "loc.type" : 1 }) 
{ "loc" : { "type" : "Polygon" } } 
+0

它的工作完美。 –

+0

我想知道点和多边形的“距离”。它是否指向多边形的近点?如果点在多边形中怎么办? – efei

+0

我怎么能在MongoDB和Java中做到这一点? –

0

也许尝试使用​​而不是$附近?

相关问题