1

MongoDB コレクションが必要で、各ドキュメントには緯度/経度ポイント (GeoJSON) で定義された地理空間ポリゴンが含まれています。次に、特定の経度/緯度のポイントを取得し、ドキュメントで定義されている MongoDB ポリゴンのいずれかに存在するかどうかを確認したいと思います。仮説的には、これはドキュメントがどのように見えるかです。

{
  "type" : "congressional",
  "points" : [ 
       { "coords" : [ 
            -141.0205, 
            70.0187 ] 
        }, 

        ...

        { "coords" : [ 
            -141.0205, 
            70.0187 ] 
        }  
    ]
}

または多分そう:

{ loc :
   { type : "Polygon" ,
     coordinates : [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
} }

そして、仮説的に、次のようにクエリを実行します(おそらくMongoの を使用します$geoWithin):

db.places.find( { loc : { $geoWithin : { $geometry : "EACH DOCUMENT IN COLLECTION"} } } )

現在の MongoDB 機能セットを使用して、ジオフェンシングまたは同様のことを行うことは可能ですか? もしそうなら、それはどのように行われますか?

4

2 に答える 2

0

最初にコレクションからすべてのドキュメントを見つける必要があると思います。次に、すべてのドキュメントに対して「$geoWithin」クエリを作成し、Polygon を渡して各ケースに対してテストする必要があります。

コレクション内のドキュメントの数によっては、十分なパフォーマンスが得られる場合とそうでない場合があります。

于 2013-11-04T01:58:25.360 に答える