【小(xiǎo)編推薦】太原php開(kāi)發-↑₹∏-----mysql 給定經緯度與數(shù)據庫經緯度距離‍>₹(lí)計(jì)算(suàn)

2015-08-25 &nbs‌↑ p; |  &nbs© &p;發布者:梁國(guó)芳   ✘®✔;|   查看(kàn):3320δ₹α次

php
第一(yī)點經緯度:lng1 lat1
第二點經緯度:lng2"₩§∏ lat2
round(6378.138*2*as ±↕in(sqrt(pow(sin(
(la♣σt1*pi()/180-lat2*pi()/180)/2),2≥φσ )+cos(lat1*pi()/180)*cos(lat2*pi(>δ​α)/180)*

pow(sin( (lng1*pi()/180↔↕•-lng2*pi()/180)/2),2)))*1000)
demo:
$title = $_POST['title'];π™δ
$A = array();
$jingdu = $_POST['lon'];$weidu = $_§πσ☆POST['lat'];

$result = $db->query("selec♠φΩγt M.itemid, M.username, M.​&↑✔thumb, M.title,M.price, M.company, C. ↕εmap, ROUND( 6378.138↔™≠♦ *2 * asin( sqrt( po'"£w( sin( (
SUBSTRING_INDEX( map, ',', -1 ☆€) * pi( ) /180 - ".$weidu.&quo‍∏t; * pi( ) /180 ) /2 ) , 2 ) + cos( × φ'SUBSTRING_INDEX( map, ',', -1 ) ✔ * pi( ) /180 ) * cos( &qu©£λot;.$weidu." * pi( ) /180 ) * powλ€( sin( (
SUBSTRING_INDEX( map, ',', 1 ) * pi( )λ↕♠ /180 - ".$jingdδβ≥©u." * pi( ) /180 ) /2 ®♣ ±) , 2 ) )
) *1000
) AS distance
FROM `jiu_mall` AS M
LEFT JOIN `jiu_company` AS C ON C.us γername = M.username
WHERE M.title LIKE '%".$title.÷♦"%'
ORDER BY distance ASC
LIMIT 0 , 30
");

這(zhè)裡(lǐ)數(shù)據庫中字段map表示坐(zuò)<ε​标值是(shì)(經度,緯度),
SUBSTRING_INDEX( map, ',', ×αλ☆1 )調用(yòng)經度,-1調用(yòng)緯度
while($r = $db->fetch_array($result)∏≈λ) {
    $A[] = $r;
}
echo $A;