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语言程序设计有所帮助。
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短