计算两个地理坐标之间的距离
2011-04-20 15:59
295 查看
计算两个地理坐标之间的距离
Postedon26/09/2010
by
下面这个函数(PHP实现)用于计算两个地理坐标之间的距离,主要用于处理源自Google地图的坐标数据。
验证数据:[48.856667,2.350987],[38.895113,-77.036366]
验证结果:6172.4281776242KM
01 | /** |
02 | *Calculatethedistancebetweentwocoordinates. |
03 | *@paramarray$s,array(float:latitude,float:longitude) |
04 | *@paramarray$e,array(float:latitude,float:longitude) |
05 | *@returnfloat,thedistance |
06 | */ |
07 | function geo_distance( $s , $e ){ |
08 |
09 | //earth'smeanradiusinKM |
10 | $r =6378.137; |
11 |
12 | $s [0]= deg2rad ( $s [0]); |
13 | $s [1]= deg2rad ( $s [1]); |
14 |
15 | $e [0]= deg2rad ( $e [0]); |
16 | $e [1]= deg2rad ( $e [1]); |
17 |
18 | $d0 = abs ( $s [0]- $e [0]); |
19 | $d1 = abs ( $s [1]- $e [1]); |
20 |
21 | $p =pow(sin( $d0 /2),2)+ cos ( $s [0])* cos ( $e [0])*pow(sin( $d1 /2),2); |
22 |
23 | $ds = $r *2*asin(sqrt( $p )); |
24 |
25 | return $ds ; |
26 | } |
MySQLFunction
01 | DELIMITER// |
02 | CREATE FUNCTION geo_distance(lat1 FLOAT ,lng1 FLOAT ,lat2 FLOAT ,lng2 FLOAT ) RETURNS FLOAT |
03 | BEGIN |
04 |
05 | DECLARE r INT DEFAULT 6378137; |
06 | DECLARE s0 FLOAT ; |
07 | DECLARE s1 FLOAT ; |
08 | DECLARE e0 FLOAT ; |
09 | DECLARE e1 FLOAT ; |
10 |
11 | DECLARE d0 FLOAT ; |
12 | DECLARE d1 FLOAT ; |
13 |
14 | SET s0=RADIANS(lat1); |
15 | SET s1=RADIANS(lng1); |
16 | SET e0=RADIANS(lat2); |
17 | SET e1=RADIANS(lng2); |
18 |
19 | SET d0= ABS (s0-e0); |
20 | SET d1= ABS (s1-e1); |
21 |
22 | RETURN r*2*ASIN(SQRT(POW(SIN(d0/2),2)+COS(s0)*COS(e0)*POW(SIN(d1/2),2))); |
23 |
24 | END // |
25 |
26 | DELIMITER; |
AboutJamesTang
WebDeveloper,focusingonlarge-scalewebapplicationandserverarchitectureandimplementation.ViewallpostsbyJamesTang→
相关文章推荐
- 计算两个地理坐标之间的距离
- PHP MYSQL 搜索周边坐标,并计算两个点之间的距离
- 使用iOS原生类计算两个坐标点之间的距离
- 在百度地图API开发中已知两个点之间的经纬度坐标计算其距离
- 计算两个坐标之间的距离(米)
- 计算两个坐标点之间的距离
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- Android/J2SE计算两个位置坐标之间的距离
- 计算两个坐标之间的距离
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
- 计算两个GPS经纬度坐标之间的距离 PHP
- 在百度地图API开发中已知两个点之间的经纬度坐标计算其距离
- 计算两个坐标之间的距离公式
- PHP计算google map两个坐标之间的距离
- java实现计算地理坐标之间的距离
- php计算两个坐标(经度,纬度)之间距离的方法
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- OC-百度地图计算两个坐标之间的距离
- Lua 计算两个GPS坐标点之间的距离