3

System.Device.Location.GeoCoordinate.GetDistanceTo(...) を逆コンパイルしたところ、計算ステップの 1 つとして地球の半径を指定する Haversine 式が使用されていることがわかりました。

逆コンパイルされたコードで指定された半径は6376500.0(メートル) です。

MSDN では、GetDistanceTo のドキュメントに次のコメントがあります。

Haversine 式は地球の曲率を説明しますが、楕円体ではなく球状の地球を想定しています。

ウィキペディアは次のように述べています

地球を球としてモデル化するいくつかの異なる方法は、それぞれ平均半径 6,371 キロメートルをもたらします

また、どこを検索しても、半径をkmと指定している人はほとんど見つかりません。6,376.5

そのため、かなり近いにもかかわらず、GetDistanceToでは6,376.5km を使用しますが、広く受け入れられている半径は6,371km です。違いはなぜですか?の作成者はGetDistanceTo、地球の半径を近似するためのより良い方法を見つけましたか?

4

1 に答える 1

1

私の計算が外れない限り、これは最大 34 km の差につながる可能性があります。

多くのように聞こえますが、0.17% の誤差が追加されるだけです。

おそらく、結果を2つの重要な場所にしか使用/表示できない場合は、それほど重要ではありません.

于 2013-10-02T13:23:20.103 に答える