Vue使用百度地图获取当前城市

一:申请百度地图密匙

我们需要提前在百度地图开放平台申请密匙才能使用对应的接口去获取城市信息。
百度地图开放平台:http://lbsyun.baidu.com/apiconsole/center#/home

注册登录后需要进行开发者认证

在这里插入图片描述
主要是需要登记认证身份证,这环节需要身份证照片,认证很快,基本提交了一下就认证成功了。
在这里插入图片描述

创建应用

在这里插入图片描述
注意!Referer白名单一定要填写正确,域名不对是无法使用定位功能的!没上线的小伙伴如果仅仅是用来本地测试或者学习的就直接填写*,这样不管是什么域名都可以使用定位功能,但上线了就需要自行更改过来
在这里插入图片描述

获取密匙AK

在这里插入图片描述


二:Vue项目使用

下载相应插件

npm install bmap

html文件引入

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=3s9RVp4wDTnCez3eBX3vjisaSlHyAWxE&services=false"></script>

在这里插入图片描述

创建一个新的js文件(下一步需要引入)

export default {
  init: function (){
    const AK = '3s9RVp........';  //你的AK
    const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak="+ AK +"&s=1&callback=onBMapCallback";
      return new Promise((resolve, reject) => {
        // 如果已加载直接返回
        if(typeof BMap !== 'undefined') {
          resolve(BMap);
          return true;
        }
        // 百度地图异步加载回调处理
        window.onBMapCallback = function () {
          resolve(BMap);
        };
        let getCurrentCityName = function () {
          return new Promise(function (resolve, reject) {
            let myCity = new BMap.LocalCity()
            myCity.get(function (result) {
              resolve(result.name)
            })
          })
        }
        // 插入script脚本
        let scriptNode = document.createElement('script');
        scriptNode.setAttribute(type, 'text/javascript');
        scriptNode.setAttribute('src', BMap_URL);
        document.body.appendChild(scriptNode);
      });
  }
}

组件引入js并使用

<script>
  import myBMap from './myBMap.js'       //上面定义的js文件
  export default {
  methods: {
      getCity(){
        myBMap.init().then(BMap=>{
          const geolocation = new BMap.Geolocation()
          geolocation.getCurrentPosition((position)=>{
            let city = position.address.city;             //获取城市信息
            let province = position.address.province;     //获取省份信息
            console.log(city)
            console.log(province)
          },(e)=>{
            console.log(e)
            console.log('定位失败')
          }, {provider: 'baidu'})
        })
      },
    },
    mounted () {
      this.getCity()      //调用函数获取城市信息
    }
  }
</script>

效果

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值