根據兩地經緯度算距離

<?php

    $EARTH_RADIUS   = 6378.137;
    $PI             = 3.1415926535898;
    $fromLatitude   = 23.137466;
    $fromLongitude  = 113.352425;
    $toLatitude     = 23.139466;
    $toLongitude    = 113.322425;
    $fromLatitude   = $fromLatitude *  $PI / 180;
    $toLatitude     = $toLatitude * $PI / 180;
    $diffLatitude   = $fromLatitude - $toLatitude;
    $fromLongitude  = $fromLongitude * $PI / 180;
    $toLongitude    = $toLongitude * $PI / 180;
    $diffLongitude  = $fromLongitude - $toLongitude;
    $distance       = 2 * asin(sqrt(pow(sin($diffLatitude/2),2 + cos($fromLatitude)*cos($toLatitude)*pow(sin($diffLongitude/2),2)));
    $distance       = $distance *$EARTH_RADIUS;
    $distance       = round($distance * 10000) / 10000;
    return $distance;
    
    
    //根據用戶的經緯度獲取附近500米的商戶
    $myLatitude     = 23.137466;//接收到的當前位置的緯度
    $myLongitude    = 113.352425;//接收到的當前位置的經度
    $EARTH_RADIUS   = 6378.137;
    $PI             = 3.1415926535898;
    $diffDistance   = 0.5;//500米
    $range          = 180 / $PI * $diffDistance / $EARTH_RADIUS;     //裏面的 1 就代表搜索 1km 之內,單位km
    $lngR           = $range / cos($myLatitude * $PI / 180);
    $maxLatitude    = $myLatitude + $range;//最大緯度
    $minLatitude    = $myLatitude - $range;//最小緯度
    $maxLongitude   = $myLongitude + $lngR;//最大經度
    $minLongitude   = $myLongitude - $lngR;//最小經度


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章