源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

golang与php实现计算两个经纬度之间距离的方法

  • 时间:2022-01-28 20:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:golang与php实现计算两个经纬度之间距离的方法
本文实例讲述了golang与php实现计算两个经纬度之间距离的方法。分享给大家供大家参考,具体如下: [b]golang版本: [/b]
[u]复制代码[/u] 代码如下:
package main import (     "fmt"     "math" ) func main() {     lat1 := 29.490295     lng1 := 106.486654     lat2 := 29.615467     lng2 := 106.581515     fmt.Println(EarthDistance(lat1, lng1, lat2, lng2)) } // 返回值的单位为米 func EarthDistance(lat1, lng1, lat2, lng2 float64) 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))     return dist * radius }
[b]php版本:[/b]
<?php
// 返回值的单位为米
function pc_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;
echo pc_sphere_distance($lat1, $lon1, $lat2, $lon2);

希望本文所述对大家Go语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部