vue3

vue基于百度地图获取位置信息

2021-09-22  本文已影响0人  lajiing

目的

在vue页面,基于百度地图获取访问当前H5页面用户的位置信息(经纬度)

1. 基于百度地图开放能力获取位置信息

  1. 在工程目录下创建一个js文件(baiduLocation.js),文件内容如下:
   /* * 加载地图
    * @param {Function} callback 回调函数名称,回调函数将会挂载到window上,例如:window.initBaiduMapScript,在方法中就能拿到BMap对象
    */
   export function loadBMap(callback) {
      var script = document.createElement('script')
      script.src = 'https://api.map.baidu.com/api?v=2.0&ak=你的AK信息&callback=' + callback
      document.body.appendChild(script)
   }

上述中,你的AK信息值通过注册百度地图开放平台账号获取

  1. 在需要获取位置信息的页面引入,具体如下:
 <script>
    import { loadBMap } from "./baiduLocation.js";
    //页面加载后
    mounted(){
       var that = this;
       //定义回调函数 
       window.initBaiduMapScript = () => { 
           that.BMap = window.BMap;
           var geolocation = new that.BMap.Geolocation();
           geolocation.getCurrentPosition(function(r) {
               if (this.getStatus() == 0) {//成功获取位置信息
                   that.address = r;
                   console.dir(that.address);
               } else {//无法获取到位置信息
                   that.address = { latitude: "", longitude: "" };
               }
           },
           {
                enableHighAccuracy: true
           });
       };
        //调用脚本获取位置信息
        loadBMap("initBaiduMapScript");
    }, 
    data(){
        return{
            address: {} //经纬度信息
        }
    }
 </script>

说明:
1. 上述address对象即包含了经纬度信息
2. 该方式需要页面url为https,否则存在定位不准确。

上一篇下一篇

猜你喜欢

热点阅读