Bir haritada iki konum arasındaki mesafeyi hesaplamaya çalışıyorum. Verilerimde sakladım: Boylam, Enlem, X POS, Y POS.
Daha önce aşağıdaki pasajı kullanıyordum.
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
Bununla birlikte, bundan çıkan verilere güvenmiyorum, biraz yanlış sonuçlar veriyor gibi görünüyor.
İhtiyaç duymanız durumunda bazı örnek veriler
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Herhangi biri bana kodumla yardımcı olabilir mi, zaten sahip olduğum şeyi düzeltmek isteyip istemediğinizi umursamıyorum, bunu başarmak için yeni bir yolunuz varsa harika olurdu.
Lütfen sonuçlarınızın hangi ölçü biriminde olduğunu belirtin.