Home >Backend Development >PHP Tutorial >PHP calculates the distance between two coordinates

PHP calculates the distance between two coordinates

巴扎黑
巴扎黑Original
2016-11-22 16:29:341987browse

<?php
define(&#39;EARTH_RADIUS&#39;, 6378.137);//地球半径
define(&#39;PI&#39;, 3.1415926);
/**
 * 计算两组经纬度坐标 之间的距离
 * params :lat1 纬度1; lng1 经度1; lat2 纬度2; lng2 经度2; len_type (1:m or 2:km);
 * return m or km
 */
function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2)
{
   $radLat1 = $lat1 * PI / 180.0;
   $radLat2 = $lat2 * PI / 180.0;
   $a         = $radLat1 - $radLat2;
   $b         = ($lng1 * PI / 180.0) - ($lng2 * PI / 180.0);
   $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
   $s = $s * EARTH_RADIUS;
   $s = round($s * 1000);
   if ($len_type > 1)
   {
       $s /= 1000;
   }
   
   return round($s, $decimal);
}
echo GetDistance(39.908156,116.4767, 39.908452,116.450479, 1);//输出距离/米


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn