이 기사의 예에서는 golang과 PHP에서 두 경도와 위도 사이의 거리를 계산하는 방법을 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
golang 버전:
코드 복사 코드는 다음과 같습니다.
패키지 메인
import (
"fmt"
"math"
)
func main() {
lat1 := 29.490295
lng1 := 106.486654
lat2 := 29.6 15467
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);
이 글이 Go 언어 프로그래밍에 종사하는 모든 분들께 도움이 되기를 바랍니다.
위 내용은 관련 내용을 포함하여 golang과 PHP에서 두 경도와 위도 사이의 거리를 계산하는 방법을 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.