uniapp获取地图定位

Daotin 于 2023-11-08 发布 编辑

流程:

1、首先使用 uni.getSetting,获取是否开启定位权限,

2、如果没有开启,先使用 uni.authorize 开启,

3、开启成功,调用 uni.getLocation 获取当前定位

4、如果授权过,直接调用 uni.getLocation 获取当前定位。

// 获取当前定位
getLocation() {
  const that = this;
  uni.getSetting({
    success: (res) => {
      console.log(res);
      // 查看是否有定位权限
      if (!res.authSetting["scope.userLocation"]) {
        // 授权获取定位权限
        uni.authorize({
          scope: "scope.userLocation",
          success() {
            that.getLatLon();
          },
          // 拒绝授权
          fail: () => {
            that.showModal = true;
          },
        });
      } else {
        that.getLatLon();
      }
    },
  });
},
// 获取当前位置
getLatLon() {
  uni.getLocation({
    type: "wgs84",
    success: (res) => {
      console.log("当前位置的纬度:" + res.latitude);
      console.log("当前位置的经度:" + res.longitude);
      // 更新数据中的位置信息
      this.latitude = res.latitude;
      this.longitude = res.longitude;
    },
    fail: (err) => {
      console.error("获取位置失败:", err);
    },
  });
},