sql >> データベース >  >> RDS >> Mysql

地理的近接性を計算する式

    余弦定理と半正矢関数は、無限の精度のマシンを想定して同じ結果をもたらします。半正矢関数は、浮動小数点エラーに対してより堅牢です。ただし、今日のマシンの有効数字は15桁の倍精度であり、余弦定理は問題なく機能する可能性があります。これらの式は両方とも球体地球を想定していますが、Vicentyの反復解(最も正確)は楕円体地球を想定しています(実際には、地球は楕円体ではなく、ジオイドです)。いくつかの参照: http://www.movable-type。 co.uk/scripts/gis-faq-5.1.html

    余弦定理で使用される緯度と、Haversineは測地緯度とは異なる地心緯度であることに注意してください。球の場合、これら2つは同じです。

    計算が最も速いのはどれですか?

    速いものから遅いものの順に、余弦定理(5つの三角関数の呼び出し)->ハバーシン(平方根を含む)->ビセンティ(これをforループで繰り返し解決する必要があります)

    どれが最も正確ですか?

    ビセンティ。

    速度と精度の両方を考慮した場合、どちらが最適ですか?

    問題のドメインが、計算しようとしている距離に対して地球が平坦であると見なすことができるようなものである場合、x =kx *経度の差の形式の式を計算できます(詳細は説明しません)。 、y =ky*緯度の差。次に、距離=sqrt(dx dx + dy dy)。問題のドメインが距離の2乗で解決できるようなものである場合は、平方根を取る必要はありません。この式は、可能な限り高速になります。 ベクトルを計算できるという追加の利点があります 距離-xは東方向の距離、yは北方向の距離です。それ以外の場合は、3を試して、状況に最適なものを選択してください。



    1. SQLite AUTOINCREMENT

    2. Postgresql:MacOSXを使用してpg_hba.confファイルを見つける方法

    3. OracleODP.netマネージドドライバーとアンマネージドドライバー

    4. SQLServerで現在の日時から過去7日間までの過去7日間のデータを取得する方法