-2
我遇到了一個讓我發瘋的問題。僅在巴拿馬谷歌地圖中計算距離的問題
幾年前,我開發了一個瀏覽器應用程序,可以計算從一個給定點(緯度和經度座標)到另一個給定點的距離。
一切都很好,直到幾天前,當一個來自巴拿馬的客戶開始與我們合作。多年來一直使用的相同的SQL過程給了我們錯誤的測量。
這是SQL公式:
(Acos(Sin((Ofd.Latitud * PI())/180) * Sin((@Longitud * PI())/180) + Cos((Ofd.Latitud * PI())/180) * Cos((@Longitud * PI())/180) * Cos((Ofd.Logitud * PI()/180) - (@Latitud * PI())/180)) * 6371 * 1000) AS Distance
我試圖計算自2008年以來SQL
DECLARE @Latitude float = 8.9749377
DECLARE @Longitude float = -79.5060562
DECLARE @TLatitude float = 8.9868425
DECLARE @TLongitude float = -79.5012872
DECLARE @Source geography
DECLARE @Target geography
SET @Source = geography::STPointFromText('POINT(' + CAST(@Latitude as varchar(20)) + ' ' + CAST(@Longitude as varchar(20)) + ')',4326)
SET @Target = geography::STPointFromText('POINT(' + CAST(@TLatitude as varchar(20)) + ' ' + CAST(@TLongitude as varchar(20)) + ')',4326)
SELECT @source.STDistance(@Target)
的兩種方法之間的性差異是可以忽略不計,幾米使用新方法的距離。返回方法的距離是〜500m
所以,問題是真實距離差不多是1500米,我已經看到並測量了谷歌地圖的距離,而1.500米是真實的距離。有趣的一面是,這個問題只發生在巴拿馬。與在西班牙的客戶,我們沒有計算距離的問題。
我發現百慕大的三角?
沒錯,但我仍然懷疑爲什麼它一直在不同的國家工作這麼多年?而且,爲什麼T-SQL方法無法正常工作? –
「不同的國家」在哪裏? – geocodezip