マップ上の2つの位置の間の距離を計算しようとしています。 私は自分のデータに保管しています:経度、緯度、X POS、Y POS。2点間の距離の計算(緯度、経度)
私はこれまで、以下のスニペットを使用しています。
DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
3956 * 2 * ASIN(
SQRT(POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180/2), 2)
+ COS(@orig_lng * pi()/180) * COS(abs(dest.Latitude) * pi()/180)
* POWER(SIN((@orig_lng - dest.Longitude) * pi()/180/2), 2)))
AS distance
--INTO #includeDistances
FROM #orig dest
私はこのデータが信頼できないものの、やや不正確な結果を示しているようです。
あなたが達成するための新しい方法を持っている場合、私は既に持っているものを修正したい場合は、それを
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
が必要な場合はいくつかのサンプルデータは、誰もが私のコードで私を助けることができる、私は気にしませんこれは素晴らしいだろう。あなたは、SQL 2008以降を使用しているとして
あなたの結果がでている測定の何単位明記してください。
どのデータベースシステムですか? – AakashM
MSSQL 2008 R2 .. – Waller
追加の/ 2で引数をsineに分割しないでください。また、地球半径の精度を高めることもできますし、例えば_Datum_を使用することもできます。地球を楕円体(赤道と極に異なる半径を持つ)で近似するGPSシステム(WGS-84) –