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
    评论
根据提供的引用内容,可以使用百度地图API、高德地图API或天地图API来根据经纬度获取地址信息。在百度地图API中,可以使用BMap.Geocoder类的getLocation方法来获取地址信息。在高德地图API中,可以使用AMap.Geocoder类的getAddress方法来获取地址信息。在天地图API中,可以使用T.Geocoder类的getLocation方法来获取地址信息。以下是一个示例代码,使用百度地图API获取地址信息: ```javascript // 引入百度地图API <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的ak"></script> // 根据经纬度获取地址信息 var geocoder = new BMap.Geocoder(); var point = new BMap.Point(经度, 纬度); geocoder.getLocation(point, function(result){ if(result){ var address = result.address; var province = result.addressComponents.province; var city = result.addressComponents.city; var district = result.addressComponents.district; var country = result.addressComponents.country; var zipcode = result.addressComponents.zipcode; console.log(address, province, city, district, country, zipcode); } }); ``` 请注意,上述代码中的"经度"和"纬度"需要替换为实际的经纬度值。同样的方法也可以在高德地图API和天地图API中使用,只需将相应的API和方法进行替换即可。 #### 引用[.reference_title] - *1* [Vue =>在vue项目中使用百度地图API,根据经纬度获取省市区具体名称](https://blog.csdn.net/weixin_48200589/article/details/119780778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue 高德地图API根据地址获取经纬度/根据经纬度获取地址](https://blog.csdn.net/qq_44146522/article/details/124409861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [在vue项目引入天地图,根据经纬度获取具体地址](https://blog.csdn.net/weixin_38331749/article/details/124926673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值