20

私はmongodbのジオロケーション機能に不慣れです。

国境を表すいくつかのポリゴンを国名とともにデータベースに保存しました。今私がやりたいことは、ポイントがどの国にあるかを確認することです。たとえば、自分の地理位置情報を与えると、自分がいる国を取得したいと思います。

mongodbでそれを行う方法はありますか? 多分geoWithinで?

ありがとうございました

4

4 に答える 4

9

次のスキーマのように位置データを保存する必要があります。

{"loc":
     {"coordinates":[
       [
         [1.0,1.0],
         [1.0,10.0],
         [10.0,10.0],
         [10.0,1.0],
         [1.0,1.0]
       ]
      ],
     "type":"Polygon"
   }
}

$geoIntersectsその後、クエリを送信します

db.polygons.find({"loc":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[x, y]}}}}
于 2014-09-10T08:02:31.483 に答える
7

そのために使わなければなりません$geoIntersects

db.features.find({mystoredpolygon:{$geoIntersects:{$geometry:{type:'Point', coordinates:[22,38]}}}})
于 2014-02-05T21:49:24.640 に答える
4

はい、 を使用$geoWithinして国をポリゴンとして定義すれば、チェックに使用できますGeoJSON。そのためには、この GitHub リポジトリを試してください。

于 2013-04-08T02:28:44.313 に答える