您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關golang與php如何實現(xiàn)計算兩個經緯度之間距離的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
golang版本:
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 }
php版本:
<?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);
感謝各位的閱讀!關于“golang與php如何實現(xiàn)計算兩個經緯度之間距離”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。