2014-01-13 68 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 - ** **什么错误是它给您?试图在人们试图帮助你时反馈给你。 –

相关问题