星星博客站

js获取经纬度,通过经纬度在获取位置信息(php调取执行只能在手机上测试查看)(附近大概位置)

编辑:php技术    日期:2020-10-11      

js:这里将代码直接加到js中就行, 

//获取经纬度坐标(只能在手机端并且在域名是HTTPS协议下才能用)
        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");
            }

        };
                        
      //调用获取经纬度方法  将经纬度发送至后台  lng:经度,lat:纬度
       getPosition(function(lng,lat){
             
            $('#out').text(lng)
            $('#oot').val(lat)
              $.ajax({
                url:"{:url('index/Index/local_ip')}",
                data:{
                    lng:lng,
                    lat:lat
                },
                type:'POST',
                dataType:'json',
                success:function(res){
                    console.log(res.result.addressComponent.city);
                    var address =res.result.addressComponent.city;
                       //alert(address);
                    $('.address1').text();
                }
            });
        });

然后通过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);
    }


上一篇:
下一篇: