/**
* 計算兩點地理坐標之間的距離
* @param Decimal $origin_lng 起點經度
* @param Decimal $origin_lat 起點緯度
* @param Decimal $destination_lng 終點經度
* @param Decimal $destination_lat 終點緯度
* @param Int $decimal 精度 保留小數位數
* @return Decimal 單位 米
*/
function get_map_distance($origin_lng, $origin_lat, $destination_lng, $destination_lat, $decimal=2) {
//地球半徑系數
$earth_radius = 6370.996;
$radLat1 = deg2rad($origin_lat);
$radLat2 = deg2rad($destination_lat);
$radLng1 = deg2rad($origin_lng);
$radLng2 = deg2rad($destination_lng);
$a = abs($radLat1 - $radLat2);
$b = abs($radLng1 - $radLng2);
$distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
$distance = $distance * $earth_radius * 1000;
echo round($distance, $decimal);
}
get_map_distance(120.104419,30.272353,120.21761,30.295641);