根据经纬度坐标计算距离

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; //最小经度

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容