Méthode PHP pour calculer la distance entre les compétences de la carte Baidu coordinates_php

WBOY
Libérer: 2016-05-16 09:00:21
original
2360 Les gens l'ont consulté

L'exemple de cet article décrit la méthode de calcul de la distance entre les coordonnées de la carte Baidu en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Ce qui suit est le code sur Internet, vous devez apporter quelques modifications lors de son utilisation

La première fonction est d'obtenir la plage, les paramètres sont la latitude, la longitude et le rayon

La deuxième fonction est de calculer la distance des coordonnées

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

Copier après la connexion

Les lecteurs intéressés par davantage de contenu lié à PHP peuvent consulter les sujets spéciaux de ce site : "Collection complète de compétences opérationnelles PHP array (Array)", "Résumé des mathématiques PHP compétences opérationnelles", "Résumé de l'utilisation des expressions régulières PHP", "Résumé des compétences et applications PHP+ajax", "Résumé des opérations PHP et de l'utilisation des opérateurs ", "Résumé des compétences en programmation réseau PHP", "Tutoriel d'introduction à la syntaxe de base de PHP", "Résumé de l'utilisation de la date et de l'heure php" , "Tutoriel d'introduction à la programmation orientée objet php ", "Résumé de l'utilisation de la chaîne php (string) ", "Tutoriel d'introduction au fonctionnement de la base de données php + mysql " et "Résumé des compétences communes en matière d'exploitation de bases de données php

J'espère que cet article sera utile à tout le monde dans la programmation PHP.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal