Mongodb Geo距離/半径から有用なユニット
-
28-09-2019 - |
質問
私はmongodb地理空間クエリを使用しています - $near
, geoNear
, など - そして、私は回転する方法を知りたい dis
の結果 geoNear
コマンドだけでなく、 radius
の議論 $within
マイルやキロメートルのような読み取り可能なユニットへの照会。
解決
データが地理的座標(つまり、30.47921 n -121.45724 w)にある場合は、基礎となる投影を必要なユニットに変換する必要があります(距離を保持するプロジェクションを選択)、または座標の距離をマイルズのようなものに変換する必要があります。
計算にはHaversineフォーミュラを使用してくださいhttp://www.movable-type.co.uk/scripts/latlong.html
他のヒント
キロメートル単位でディス値にGeonearコマンドを使用すると、パラメーターが追加されます。
distanceMultiplier: (6371 * Math::PI / 180.0)
注MongoDBバージョン2.6.0を使用している場合、球状座標系の新しい動作が常にメートルで距離を返すことができるバグがあります(WGS84座標に基づいて)。
ドキュメントでは、それを与えると述べています $near
Geojsonではなくレガシー座標のパラメーターは、まだラジアンを返す必要があります。これは新しいバージョンで修正されています。
バグレポート: バグ#13540
所属していません StackOverflow