基于HTML5定位使用PHP+MySQL搜索附近的人并AJAX返回结果

前端HTML5

<script type="text/javascript">
    var gotrue = true;
    $(document).ready(function(){
        loaddata();
    });
    setInterval(function() {
        loaddata();
        gotrue = true;
    },10000);
    function loaddata(){
        if(navigator.geolocation){
            navigator.geolocation.watchPosition(showPosition);  //移动地址
            //navigator.geolocation.getCurrentPosition(showPosition);
        }
    }
    function showPosition(position){
        if(gotrue){
            gotrue = false;
            $.getJSON("https://www.lvtao.net/map.php?x="+ position.coords.latitude + "&y=" + position.coords.longitude , function(data){
                .... //此处处理返回结果
            });
        }
    }
</script>

MySQL数据库支撑,MyISAM引擎
建表时字段类型为空间类型 POINT等
插入值时需要做处理:

GeomFromText('POINT(30.620076 104.067221)')

查询: 查找附近 10 公里

SELECT  *
    FROM    表名
    WHERE   MBRContains
                    (
                    LineString
                            (
                            Point
                                    (
                                    30.620076 + 10 / ( 111.1 / COS(RADIANS(104.067221))),
                                    104.067221 + 10 / 111.1
                                    ),
                            Point
                                    (
                                    30.620076 - 10 / ( 111.1 / COS(RADIANS(104.067221))),
                                    104.067221 - 10 / 111.1
                                    ) 
                            ),
                    字段名
                    )

mysql5.6+以上版本的空间关系函数:st_distance(),返回两点间的距离值,参考文档:http://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值