ホームページ >データベース >mysql チュートリアル >SQL Server はどのようにして 2 つの緯度/経度点間の距離を正確に計算できますか?
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 サイトの他の関連記事を参照してください。