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

SQL Server はどのようにして 2 つの緯度/経度点間の距離を正確に計算できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-12 13:08:45867ブラウズ

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

SQL Server での地理的ポイント間の距離を正確に計算する

マップ座標間の正確な距離計算は非常に重要です。 一部の数式は近似値を提供しますが、SQL Server の組み込み機能は優れた精度を提供します。

SQL Server の データ型の利用 (SQL Server 2008 以降)geography

データ型 (SQL Server 2008 以降のバージョンで利用可能) は、距離を計算するための堅牢なソリューションを提供します。 その方法は次のとおりです:geography

<code class="language-sql">DECLARE @source geography = 'POINT(0 51.5)'
DECLARE @target geography = 'POINT(-3 56)'

SELECT @source.STDistance(@target)</code>
このクエリは距離をメートル単位で返します。

タイプと既存のデータの統合geography

確立されたデータベース スキーマを使用している場合は、

タイプをシームレスに統合できます。 geography メソッドはこれを容易にします:Point

<code class="language-sql">DECLARE @orig_lat DECIMAL(12, 9)
DECLARE @orig_lng DECIMAL(12, 9)
SET @orig_lat=53.381538; SET @orig_lng=-1.463526;

DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);

SELECT *,
    @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance
FROM #orig dest;</code>
この例では、距離の計算に

データ型の精度を利用しながら、既存のデータ構造を保持します。geography

以上がSQL Server はどのようにして 2 つの緯度/経度点間の距離を正確に計算できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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