1

Java で mongodb の地理機能を使用していますが、コマンド「geoNear」を実行しているときに次の問題に直面しています。

与えられた:

  • GeoJSON オブジェクトを含む「GEOENTITIES」という名前のコレクション
  • このコレクションは、Java コード (Jongo を使用) でインデックス化されています。

    collection.ensureIndex("{ coordinates : '2dsphere' }");
    
  • [48.0, 9.0] に等しい座標を持つドキュメント (例では「A」という名前) が存在します。

実行時:

{geoNear: 'GEOENTITIES', near: [48.0,9.1], spherical: true, num: 5, distanceMultiplier: 6371}

それで:

コマンドの結果は次のとおりです。

{ "dis" : 11.11949328574724 , "obj" : { "coordinates" : [ 48.0 , 9.0] , "_id" : { "$oid" : "51a62a5485878b1ceca38ab3"} , "name" : "Toto"}}

http://williams.best.vwh.net/gccalc.htmから計算された距離が 7.46 であるのに、なぜ距離が 11.11 (キロメートル)なのですか? 私は何か間違ったことをしたと思いますが、何がわかりませんか、もっと実験した人が助けてくれるでしょうか?

4

2 に答える 2

0

残念ながら、エラーが見つかりました...結果を確認するときに、ウェブサイトで緯度/経度を逆にしました。

正しい距離は MongoDB によって与えられたものなので、すべて問題ありません。

申し訳ありませんが、A. Jesse Jiryu Davis の助けに感謝します :)

編集:編集した回答をご覧ください。検証します。ありがとうございます。

于 2013-05-29T20:21:16.673 に答える