uni-app中使用uni.getLocation和uni.chooseLocation

发布于 1周前 作者 caililin 来自 Uni-App

uni-app中使用uni.getLocation和uni.chooseLocation
使用uni.getLocation和uni.chooseLocation用的是高德的key。是不是还需要高德开发平台申请商业授权和缴纳费用(5万/年)

图片

2 回复

老师,你有答案了吗


在uni-app中,uni.getLocationuni.chooseLocation是两个常用的API,分别用于获取当前设备的地理位置信息和让用户选择地理位置信息。下面我将给出如何在uni-app中使用这两个API的代码案例。

使用uni.getLocation获取当前地理位置

uni.getLocation用于获取当前设备的地理位置信息,包括经度、纬度等。以下是一个简单的示例:

// 调用uni.getLocation获取当前地理位置
uni.getLocation({
  type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
  success: function (res) {
    console.log('当前位置:', res);
    const latitude = res.latitude;
    const longitude = res.longitude;
    const speed = res.speed; // 速度,单位:米/秒
    const accuracy = res.accuracy; // 精度,单位:米
    
    // 可以在这里使用获取到的经纬度进行其他操作,如显示地图
    uni.openLocation({
      latitude: latitude,
      longitude: longitude,
      scale: 18
    });
  },
  fail: function (err) {
    console.error('获取位置失败:', err);
  }
});

使用uni.chooseLocation让用户选择地理位置

uni.chooseLocation用于调用原生接口,让用户选择地理位置,并返回该位置信息。以下是一个示例:

// 调用uni.chooseLocation让用户选择地理位置
uni.chooseLocation({
  success: function (res) {
    console.log('用户选择的地理位置:', res);
    const name = res.name; // 地点名称
    const address = res.address; // 详细地址
    const latitude = res.latitude; // 纬度,浮点数,范围为-90~90
    const longitude = res.longitude; // 经度,浮点数,范围为-180~180
    
    // 可以在这里使用用户选择的经纬度进行其他操作,如导航
    uni.showModal({
      title: '提示',
      content: `您选择的地点是:${name},地址:${address}`,
      showCancel: false,
      success: function (modalRes) {
        // 可以进一步处理,如导航到该地点
        uni.openLocation({
          latitude: latitude,
          longitude: longitude,
          scale: 18,
          name: name,
          address: address
        });
      }
    });
  },
  fail: function (err) {
    console.error('选择位置失败:', err);
  }
});

以上两个代码案例展示了如何在uni-app中使用uni.getLocationuni.chooseLocation。前者用于获取当前设备的地理位置,后者用于让用户选择地理位置。你可以根据具体需求,将获取到的经纬度等信息用于显示地图、导航等功能。

回到顶部