golang与php实现计算两个经纬度之间距离的方法
本文实例讲述了golang与php实现计算两个经纬度之间距离的方法。分享给大家供大家参考,具体如下:
golang版本:
packagemain import( "fmt" "math" ) funcmain(){ lat1:=29.490295 lng1:=106.486654 lat2:=29.615467 lng2:=106.581515 fmt.Println(EarthDistance(lat1,lng1,lat2,lng2)) } //返回值的单位为米 funcEarthDistance(lat1,lng1,lat2,lng2float64)float64{ radius:=float64(6371000)//6378137 rad:=math.Pi/180.0 lat1=lat1*rad lng1=lng1*rad lat2=lat2*rad lng2=lng2*rad theta:=lng2-lng1 dist:=math.Acos(math.Sin(lat1)*math.Sin(lat2)+math.Cos(lat1)*math.Cos(lat2)*math.Cos(theta)) returndist*radius }
php版本:
<?php //返回值的单位为米 functionpc_sphere_distance($lat1,$lon1,$lat2,$lon2,$radius=6371000){ $rad=doubleval(M_PI/180.0); $lat1=doubleval($lat1)*$rad; $lon1=doubleval($lon1)*$rad; $lat2=doubleval($lat2)*$rad; $lon2=doubleval($lon2)*$rad; $theta=$lon2-$lon1; $dist=acos(sin($lat1)*sin($lat2)+cos($lat1)*cos($lat2)*cos($theta)); return$dist*$radius*1000; } $lat1=29.490295; $lon1=106.486654; $lat2=29.615467; $lon2=106.581515; echopc_sphere_distance($lat1,$lon1,$lat2,$lon2);
希望本文所述对大家Go语言程序设计有所帮助。