[转]关于两个坐标点的距离的计算问题

客户端上传当前地理位置(x.y),保存在服务端数据库中 
客户端根据地点向服务端查询下载自己周围XXX米的数据 
问题:这个XXX米如何计算?经纬度是(x,y) 
如果数据库中以这两个值来计算距离然后筛选的话,太不现实了 ,咋办 ?

画圆啊,取近似值,例如,我们说的附近100米,是一个圆形的概念,但是在数据库中计算的时候我们可以计算纵横坐标在左右前后100米就OK了.这样一定会是一个正方形,不过这点误差一般不会有问题,因为经纬度本身就有误差啊!~这样就不用计算了,只要经纬度分别在正负100米之内就OK了啊(要换算成经纬度来计算的哦!~)

 

地球上任两点间距离公式: 
地球上任两点,其经度分别为A1、A2(E正,W负),纬度分别为B1、B2(N正,S负)。
令A0=(A1-A2)÷2,B0=(BI-B2)÷2
f=√sinB0×sinB0+cosB1×cosB2×sinA0×sinA0
则两点间空间直线距离=2fR
说明:E、W、N、S=东西南北;R=地球半径;√=根号;∏=圆周率。
代入公式自己算吧

 

如何计算两点间距离

比如:点A的经度为11695400,纬度为3995400。点B的经度为11695300,纬度为3995300。
公式:两点间距离 = [ (A点经度 - B点经度)^2 + (A点纬度 - B点纬度)^2 ] ^ (1/2) = [ (11695400 - 11695300)^2
+ (3995400 - 3995300)^2 ] ^(1/2) =(10000+10000) ^ (1/2) =141米
公式说明:加法 + ,减法 - ,乘法 *,除法 /,幂运算 ^(1/2)表示平方根 ^2表示平方。

适用范围:未加密经纬度/加密经纬度

深入研究推荐:http://www.movable-type.co.uk/scripts/latlong.html

posted @ 2013-03-27 01:13  ygm900  阅读(1718)  评论(0编辑  收藏  举报