ホームページ >データベース >mysql チュートリアル >SQL Server で 2 つの緯度/経度点間の距離を計算するにはどうすればよいですか?
距離計算に SQL Server の地理データ型を利用する
緯度と経度で指定された 2 点間の距離を決定するには、特殊なアプローチが必要です。 SQL Server は、バージョン 2008 以降、地理情報を処理および分析するための強力なツールである geography
データ型を提供します。
geography::Point
メソッドは、WGS84 (World Geodetic System 1984) に対応する SRID 4326 を使用して、各ポイントの geography
オブジェクトを構築します。 これらのオブジェクトが作成されると、STDistance
メソッドは距離を効率的に計算します。
<code class="language-sql">DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326); SELECT *, @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance --INTO #includeDistances FROM #orig dest</code>
これにより、メートル単位で正確な距離が得られます。 たとえば、指定されたサンプル データ:
<code>Latitude Longitude Distance 53.429108 -2.500953 85.2981833133896</code>
計算された距離は約 85.3 メートルとなり、単純な方法よりもかなり正確な結果が得られます。したがって、geography
データ型は、SQL Server の地理空間アプリケーションにとって堅牢かつ効率的なソリューションであり、精度を高めながら複雑な計算を簡素化します。
以上がSQL Server で 2 つの緯度/経度点間の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。