ホームページ >データベース >mysql チュートリアル >SQL Server で 2 つの緯度/経度点間の距離を計算するにはどうすればよいですか?

SQL Server で 2 つの緯度/経度点間の距離を計算するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-12 13:02:43196ブラウズ

How Can I Calculate the Distance Between Two Latitude/Longitude Points in SQL Server?

距離計算に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。