js获取经纬度,通过经纬度在获取位置信息(附近大概位置)

前面的文章中写到通过获取iP来获取位置信息,使用wifi或PC端还行,但是如果使用手机自己的网就会可能出现卡办理的地址,这样就违背了我们的想要获取的位置信息;所以今天使用js获取到经纬度然后调用百度接口来获取位置具体信息,测试过,大概范围一公里左右,主要还是获取城市的名称,这样就够用了。不多说了,直接上代码:
js:这里将代码直接加到js中就行,
注意~注意:该方法只支持 https 协议!!!http获取不到

//获取经纬度坐标
        function getPosition (callback) {

            if ("geolocation" in navigator) {
                var geo_options = {
                  enableHighAccuracy: true,
                  maximumAge: 0,
                  timeout : 6000
                };
                navigator.geolocation.getCurrentPosition(function(pos) {
                    // 获取到当前位置经纬度
                    var lng = pos.coords.longitude;
                    var lat = pos.coords.latitude;
                    callback(lng,lat);
                }, function(err){
                    console.log(err.message);
                }, geo_options);
            } else {
                 console.log("Browser didnt support geolocation");
            }

        };

下面是调用:这段代码应该会用吧

			 getPosition(function(lng,lat){
                var out=document.getElementById('out');
                    out.outerHTML='当前经度:'+lng+'<br/>当前纬度'+lat;
             });

然后通过ajax将获取到的经纬度发送到后台
php:

 public function local_ip()
    {
        $lng = $_POST['lng'];//获取的经度
        $lat = $_POST['lat'];//获取的纬度
        //注意链接中的经纬度位置。前面的是纬度,后面的是经度
        $url = 'http://api.map.baidu.com/geocoder?location='.$lat.','.$lng.'&output=json&key=你自己的秘钥';
        $res = file_get_contents($url);
        $res = json_decode($res,true);
        echo json_encode($res);
    }

这样在ajax中返回的就是你想要的位置信息了!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值