私はmongodbのジオロケーション機能に不慣れです。
国境を表すいくつかのポリゴンを国名とともにデータベースに保存しました。今私がやりたいことは、ポイントがどの国にあるかを確認することです。たとえば、自分の地理位置情報を与えると、自分がいる国を取得したいと思います。
mongodbでそれを行う方法はありますか? 多分geoWithinで?
ありがとうございました
私はmongodbのジオロケーション機能に不慣れです。
国境を表すいくつかのポリゴンを国名とともにデータベースに保存しました。今私がやりたいことは、ポイントがどの国にあるかを確認することです。たとえば、自分の地理位置情報を与えると、自分がいる国を取得したいと思います。
mongodbでそれを行う方法はありますか? 多分geoWithinで?
ありがとうございました
次のスキーマのように位置データを保存する必要があります。
{"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]}}}}
そのために使わなければなりません$geoIntersects
。
db.features.find({mystoredpolygon:{$geoIntersects:{$geometry:{type:'Point', coordinates:[22,38]}}}})
はい、 を使用$geoWithin
して国をポリゴンとして定義すれば、チェックに使用できますGeoJSON
。そのためには、この GitHub リポジトリを試してください。