ฉันกำลังพยายามคำนวณระยะห่างระหว่างสองตำแหน่งบนแผนที่ ฉันเก็บไว้ในข้อมูลของฉัน: Longitude, Latitude, X POS, Y POS
ฉันเคยใช้ตัวอย่างข้อมูลด้านล่างนี้มาก่อน
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
ใครสามารถช่วยฉันด้วยรหัสของฉันฉันไม่รังเกียจถ้าคุณต้องการแก้ไขสิ่งที่ฉันมีอยู่แล้วถ้าคุณมีวิธีใหม่ในการบรรลุสิ่งนี้ซึ่งจะดีมาก
โปรดระบุว่าผลลัพธ์ของคุณอยู่ในหน่วยการวัดใด