根据经纬度坐标计算距离

2019-11-16  本文已影响0人  遥控板

res = Db::query("SELECT id,line_shop_name,ROUND(2 * 6378.137 * ASIN(SQRT(POW( SIN( PI( ) * ( " .data['longitude'] . "- map_longitude ) / 360 ), 2 ) + COS( PI( ) * " . data['latitude'] . " / 180 ) * COS( map_latitude * PI( ) / 180 ) * POW( SIN( PI( ) * ( " .data['latitude'] . "- map_latitude ) / 360 ), 2 )))*1000) AS distance FROM shop ORDER BY distance ASC");

range = 180 / pi() * 1.5 / 6378.137; //里面的 1 就代表搜索 1km 之内,单位km6372.797lngR = range / cos(latitude * pi() / 180);
maxLat =latitude + range; //最大纬度minLat = latitude -range; //最小纬度
maxLng =longitude + lngR; //最大经度minLng = longitude -lngR; //最小经度

上一篇下一篇

猜你喜欢

热点阅读