《PHP實(shí)戰(zhàn):php實(shí)現(xiàn)計(jì)算百度地圖坐標(biāo)之間距離的方法》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):php實(shí)現(xiàn)計(jì)算百度地圖坐標(biāo)之間距離的方法,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP應(yīng)用本文實(shí)例講述了php實(shí)現(xiàn)計(jì)算百度地圖坐標(biāo)之間距離的辦法.分享給大家供大家參考,具體如下:
PHP應(yīng)用下面是網(wǎng)上的代碼,使用的時(shí)候需要進(jìn)行些許修改
PHP應(yīng)用第一個(gè)函數(shù)是獲得范圍,參數(shù)為緯度經(jīng)度半徑
PHP應(yīng)用第二個(gè)函數(shù)是計(jì)算坐標(biāo)距離
PHP應(yīng)用
<?php
define('PI',3.1415926535898);
define('EARTH_RADIUS',6378.137);
//計(jì)算范圍,可以做搜索用戶
function GetRange($lat,$lon,$raidus){
//計(jì)算緯度
$degree = (24901 * 1609) / 360.0;
$dpmLat = 1 / $degree;
$radiusLat = $dpmLat * $raidus;
$minLat = $lat - $radiusLat; //得到最小緯度
$maxLat = $lat + $radiusLat; //得到最大緯度
//計(jì)算經(jīng)度
$mpdLng = $degree * cos($lat * (PI / 180));
$dpmLng = 1 / $mpdLng;
$radiusLng = $dpmLng * $raidus;
$minLng = $lon - $radiusLng; //得到最小經(jīng)度
$maxLng = $lon + $radiusLng; //得到最大經(jīng)度
//范圍
$range = array(
'minLat' => $minLat,
'maxLat' => $maxLat,
'minLon' => $minLng,
'maxLon' => $maxLng
);
return $range;
}
//獲取2點(diǎn)之間的距離
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;
}
PHP應(yīng)用更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php正則表達(dá)式用法總結(jié)》、《PHP+ajax技巧與應(yīng)用小結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
PHP應(yīng)用希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所贊助.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/6779.html