Longitude

PHP轻松实现"附近的人"功能,根据IP确定经纬度,根据经纬度计算距离

五迷三道 提交于 2019-12-17 17:58:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> PHP安装GeoIP扩展和数据库根据IP获取访客所在国家/城市/经纬度等信息 然后就可以用geoip_record_by_name($_SERVER['REMOTE_ADDR'])根据用户IP确定经纬度了. 注意:geoip_record_by_name()返回的西经和南纬是负数. 5000米转成经纬度: 纬度 Latitude: 1 deg = 110852 m 经度 Longitude: 1 deg = 111320*cos(lat) m 同一经线上,相差一纬度约为 110852 米 同一纬线上,相差一经度约为 111320*cos(lat) 米 (lat为该纬线的纬度) <?php //以当前用户经纬度为中心,查询5000米内的其他用户 $y = 5000 / 110852; //纬度的范围 $x = 5000 / (111320*cos($lat)); //经度的范围 $sql = ' select * from user where lat >= ($lat-$y) and lat <= ($lat+$y) and lon >= ($lon-$x) and lon <= ($lon+$x); '; 数据库用户表中设两个字段,分别存储用户的经度lat和纬度lon. ($lat-$y) <= lat <=