【小(xiǎo)編推薦】關于根據經緯度計'×←(jì)算(suàn)距離(lí)的(de)←±☆×一(yī)點心得(de)

2016-05-21   |&nbs₹ p;  發布者:梁國(guó)芳 ↔¥÷∑  |  &n§≤∏bsp;查看(kàn):3320次

php
關于根據經緯度計(jì)算(suàn)距離(lí↑α)的(de)一(yī)點心得(de)
    關鍵mysql語句(根據π✔需要(yào)可(kě)直接使用(yòng)):
    select *,(6378.> 138 * 2 * asin(sqrt(pow(sin((".​↓$weidu." * pi() / 180 - weidu *  ∑£βpi() / 180) / 2),2) + cos×®↓$(".$weidu."φε  * pi() / 180) * cos(weidu * pi() / ¶↕♦•180) * pow(sin((".$jing  ‍₽du." * pi() / 180 - j$✔Ωingdu * pi() / 180) / 2),2))) * 1∏↔000) AS distance FROM `wts_restaura₽‍✘®nt` ORDER BY distance &∏★ nbsp;limit $offset ,$page<$size;
    語句中的(de)$weidu,$jingdu為(w↑σσ§èi)已知(zhī)點的(de)緯度和(hé)經度,weid‌©u、jingdu為(wèi)數(shù)據庫中的(de)字段
    根據經緯度計(jì)算( ✔∞suàn)兩點間(jiān)距離(lí)公式(<★γ單位米)
    第一(yī)點經  緯度:lng1 lat1
    第二點經緯度:lng2 §€lat2
    round(6378.138*2*asin(sqr★λ↓δt(pow(sin( (lat1*pi()/180-lat2*pi()/₩₩♦180)/2),2)+cos(lat1*pi()/180)*cos(lσ®¥at2*pi()/180)* pow(s'≠♦₽in( (lng1*pi()/180-lng2*pi(π∑∏)/180)/2),2)))*1000)
    例子(zǐ):
    已知(zhī)一(y§ε<¥ī)個(gè)點的(de)經度:114.173881 緯度:22.'★299439
    數(shù)據庫中存的(de)經度字段≤€±名稱:lng 緯度字段名稱:lat
    select store_id,'​​lng,lat, ROUND(6378.138*2*φ≥ASIN(SQRT(POW(SIN((22.299439*PI¥♦©()/180-lat*PI()/180)/2)©•,2)+COS(22.299439*PI()/180)*&≤÷±COS(lat*PI()/180)*POε↑λ∏W(SIN((114.173881*PI()/180-lng*PI()/1™≠80)/2),2)))*1000) AS∞  juli
    FROM store_info
    ORDER B≠ε‌♥Y juli DESC
    LIMIT 316