微信小程序-获取用户地址
getLocation
获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定 highAccuracyExpireTime 作为超时时间。地图相关使用的坐标格式应为 gcj02。
属性 | 类型 | 说明 |
---|---|---|
latitude | number | 纬度,范围为 -90~90,负数表示南纬 |
longitude | number | 经度,范围为 -180~180,负数表示西经 |
speed | number | 速度,单位 m/s |
accuracy | number | 位置的精确度 |
altitudea | number | 高度,单位m |
verticalAccuracy | number | 垂直精度,单位m(Android 无法获取,返回0) |
horizontalAccur | number | 水平精度,单位m |
chooseLocation
打开地图选择位置。
属性 | 类型 | 说明 |
---|---|---|
name | String | 位置名称 |
address | String | 详细地址 |
latitude | number | 纬度,浮点数,范围为 -90~90,负数表示南纬。使用 gcj02 国家测量局坐标系 |
longitude | number | 经度,浮点数,范围为 -180~180,负数表示西经。使用 gcj02 国家测量局坐标系 |
代码部分
app.json中需要添加以下部分:
"permission": {
"scope.userLocation": {
"desc": "您的位置信息将用于获取周围商家信息"
}
},
wxml文件
<!--pages/AddAddress/AddAddress.wxml-->
<button bindtap="getLocation" plain>getLocation</button>
<button bindtap="chooseLocation" plain>chooseLocation</button>
js文件
// pages/AddAddress/AddAddress.js
Page({
getLocation(){
wx.getLocation({
type: 'wgs84',//wgs84 返回 gps 坐标,gcj02 返回国测局坐标
success (res) {
console.log(res);
},
fail(err){
console.log(err);
}
})
},
chooseLocation(){
wx.chooseLocation({
latitude: 0,
success (res) {
console.log(res);
},
fail(err){
console.log(err);
}
})
}
})
显示效果
补充
getLocation() 方法获取到的是经纬度,对于这样的信息,大多数人是用不上的。所以这个方法一般配合逆地址解析一起使用。逆地址解析就是将输入的经纬度信息,转为结构化地址信息。逆地址解析。
如果以上三处的代码都没有错:却还是出现以下情况。那八成说明你没有给小程序权限。
就因为这错,我前后弄了半个多小时。解决方法就是:
- 点击右上角的【三个点】
- 然后点设置去授权