首頁 > php教程 > php手册 > 主體

php计算两个经纬度地点之间的距离

WBOY
發布: 2016-06-21 08:49:10
原創
1776 人瀏覽過

php计算两个指定的经纬度地点之间的距离,这个在做计算给定某个地点的经纬度,计算其附近的商业区,以及给定地点与附近各商业区之间的距离的时候,还是用的到的。下面是具体的函数代码以及用法示例。

关于如何获取某个地址的经纬度,可参照本站文章:

谷歌地图第三版根据地理位置获取经纬度的方法

<?php /**
*求两个已知经纬度之间的距离,单位为米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位米
*@author www.Alixixi.com
**/
function getdistance($lng1,$lat1,$lng2,$lat2){
	//将角度转为狐度
	$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度
	$radLat2=deg2rad($lat2);
	$radLng1=deg2rad($lng1);
	$radLng2=deg2rad($lng2);
	$a=$radLat1-$radLat2;
	$b=$radLng1-$radLng2;
	$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137*1000;
	return $s;
}
登入後複製

这里计算一下“上海市延安西路2055弄”到“上海市静安寺”的距离:

上海市延安西路2055弄 经纬度:31.2014966,121.40233369999998

上海市静安寺 经纬度:31.22323799999999,121.44552099999998

则:

echo getdistance(31.2014966,121.40233369999998,31.22323799999999,121.44552099999998);
登入後複製

结果为:4970.4248747365 ,约4970米,大约10里路,据我以前经常往返于这两点一线的经验,应该还差不多吧。



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!