Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Methode zur Berechnung des Abstands zwischen Baidu-Kartenkoordinaten_php-Fähigkeiten

PHP-Methode zur Berechnung des Abstands zwischen Baidu-Kartenkoordinaten_php-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 09:00:212325Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode zur Berechnung der Entfernung zwischen Baidu-Kartenkoordinaten in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Das Folgende ist der Code im Internet. Bei der Verwendung müssen einige Änderungen vorgenommen werden

Die erste Funktion besteht darin, den Bereich zu ermitteln. Die Parameter sind Breitengrad, Längengrad und Radius

Die zweite Funktion besteht darin, den Koordinatenabstand zu berechnen

<&#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;
}

Leser, die an weiteren PHP-bezogenen Inhalten interessiert sind, können sich die speziellen Themen auf dieser Website ansehen: „Umfassende Sammlung von Fähigkeiten zum Betrieb von PHP-Arrays (Arrays)“, „Zusammenfassung der PHP-Mathematik Betriebsfähigkeiten", "Zusammenfassung der Verwendung regulärer PHP-Ausdrücke", "Zusammenfassung der PHP+Ajax-Kenntnisse und -Anwendungen", "Zusammenfassung der PHP-Operationen und der Operatorverwendung ", "Zusammenfassung der PHP-Netzwerkprogrammierkenntnisse", "Einführung in die grundlegende PHP-Syntax-Tutorial", "Zusammenfassung der Verwendung von PHP-Datum und -Uhrzeit" , „Tutorial zur Einführung in die objektorientierte PHP-Programmierung “, „Zusammenfassung der PHP-String-(String-)Nutzung“, „Einführungs-Tutorial zum PHP+MySQL-Datenbankbetrieb“ und „Zusammenfassung allgemeiner PHP-Datenbankbetriebsfähigkeiten

Ich hoffe, dass dieser Artikel für alle, die sich mit PHP-Programmierung befassen, hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn