2014-01-13 91 views
2

我已經有緯度和經度表如何使用緯度和經度計算距離?


 Lat   Longitude 

40.8151 -73.0455 U 36103 
40.8132 -73.0476 U 36103 

所以我想是我傳遞了兩個經度和緯度,從我的網頁我怎麼能使用存儲過程我覺得最近的地方沒有太多的手,所以我必須問這裏

嘗試使用這一個

(3959 * acos(cos(radians(37)) * cos(radians(@latitude)) * cos(radians(@longtitude) - radians(-122)) + sin(radians(37)) * sin(radians(@latitude)))) 

但我必須將它與表值相匹配,所以我如何實現這一目標?

+0

您可能會發現此頁面有用:http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a_Globe – Baldrick

回答

4
SELECT ROUND(6371 * acos(cos(radians('lat')) * cos(radians(latitude)) * cos(radians(longitude) - radians('long')) + sin(radians('lat')) * sin(radians(latitude)))) as distance,latitude,longitude, from your_table HAVING distance<=20 order by distance 

您可以使用類似於你的SQL如上圖所示,其中'lat''long'是要傳遞到搜索變量值的查詢。 'longitude''latitude'是您的表中的列名稱。順便說一下,這被稱爲Haversine公式,常數6371用於獲取KM中的距離,而3959用於獲取以英里爲單位的距離。您可以根據您的要求使用它們中的任何一個。

+0

雅謝謝,我會盡量給你響應 –

+0

其發生錯誤 –

+0

@dholakiyaankit - ** **什麼錯誤是它給您?試圖在人們試圖幫助你時反饋給你。 –

相關問題