Home >Backend Development >PHP Tutorial >PHP method to calculate the distance between Baidu map coordinates Baidu map bus query Baidu map api Baidu map route query

PHP method to calculate the distance between Baidu map coordinates Baidu map bus query Baidu map api Baidu map route query

WBOY
WBOYOriginal
2016-07-29 08:50:331551browse

The example in this article describes the method of calculating the distance between Baidu map coordinates in PHP. Share it with everyone for your reference, the details are as follows:

The following is the code on the Internet, you need to make some modifications when using it

The first function is to obtain the range, the parameters are latitude, longitude and radius

The second function is to calculate the coordinate distance

<&#63;php
define('PI',3.1415926535898);
define('EARTH_RADIUS',6378.137);
//计算范围,可以做搜索用户
function GetRange($lat,$lon,$raidus){
  //计算纬度
  $degree = (24901 * 1609) / 360.0;
  $dpmLat = 1 / $degree;
  $radiusLat = $dpmLat * $raidus;
  $minLat = $lat - $radiusLat; //得到最小纬度
  $maxLat = $lat + $radiusLat; //得到最大纬度
  //计算经度
  $mpdLng = $degree * cos($lat * (PI / 180));
  $dpmLng = 1 / $mpdLng;
  $radiusLng = $dpmLng * $raidus;
  $minLng = $lon - $radiusLng; //得到最小经度
  $maxLng = $lon + $radiusLng; //得到最大经度
  //范围
  $range = array(
    'minLat' => $minLat,
    'maxLat' => $maxLat,
    'minLon' => $minLng,
    'maxLon' => $maxLng
  );
  return $range;
}
//获取2点之间的距离
function GetDistance($lat1, $lng1, $lat2, $lng2){
  $radLat1 = $lat1 * (PI / 180);
  $radLat2 = $lat2 * (PI / 180);
  $a = $radLat1 - $radLat2;
  $b = ($lng1 * (PI / 180)) - ($lng2 * (PI / 180));
  $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 * 10000) / 10000;
  return $s;
}

Readers who are interested in more PHP-related content can check out the special topics of this site: "Complete PHP Array Operation Skills", "Summary of PHP Mathematical Operation Skills", "Summary of PHP Regular Expression Usage", " Summary of PHP+ajax skills and applications", "Summary of PHP operations and operator usage", "Summary of PHP network programming skills", "Introduction to PHP basic syntax tutorial", "Summary of PHP date and time usage", "php object-oriented programming "Introductory Tutorial", "Summary of PHP String Usage", "Introductory Tutorial on PHP+MySQL Database Operation" and "Summary of Common PHP Database Operation Skills"

I hope this article will be helpful to everyone in PHP programming.

The above introduces the method of calculating the distance between Baidu map coordinates in PHP, including the method of Baidu map. I hope it will be helpful to friends who are interested in PHP tutorials.

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