1
我試圖顯示一個靠近當前地圖位置的一般商店列表。谷歌地圖+從具有海峽網公式的SQL Server到當前位置附近的地方
一切工作正常,但我只是意識到,無論我在哪裏平移地圖,很多商店沒有接近當前地圖位置的地方從我的SQL Server數據庫獲取調用。
例子:
我有一個店,其居住在德國的DB:
Venue Venue_Lat Venue_Lng
Bookstore 51.165712 10.451547
我使用的半正矢公式我的存儲過程[GetNearbyLocations]來檢索假設商店距離當前位置50英里以內,例如我通過當前位置爲美國,半徑爲50英里:
Radius: 50
USA Lat: 38.5554745
USA Lng: -95.6649999
在德國的商店被叫儘管它不在50英里範圍內。我理解並接受這些公式不是100%準確的,但這是否正常?任何人都可以請在此建議。謝謝。
的存儲過程的一部分:
DECLARE @intMilesModifier int
SET @intMilesModifier = 3959
SELECT .... some fields,
[Venue_Lat],
[Venue_Long],
(@intMilesModifier*acos(cos(radians(@dmlLat))*cos(radians(Venue_Lat))*cos(radians(Venue_Long)-radians(@dmlLng))+sin(radians(@dmlLat))*sin(radians(Venue_Lat)))) AS distance
FROM [Stores] a
WHERE (@intMilesModifier*acos(cos(radians(@dmlLat))*cos(radians(Venue_Lat))*cos(radians(Venue_Long)-radians(@dmlLng))+sin(radians(@dmlLat))*sin(radians(Venue_Lat)))) < @Radius
謝謝,我的錯誤,但實際上我使用Harvesine公式以前產生相同的結果,無論如何,我編輯了我的帖子。 – k80sg
謝謝。我認爲這個公式是正確的。你是否可以在你身邊嘗試一下,以確保錯誤在我的終點? – k80sg
我修改了應該運行的代碼。我無法運行它,因爲我沒有SQL服務器 –