和定位相关的api需要在app.json中配置:
"requiredBackgroundModes": [ "location"] location: 后台定位
获取地理位置描述说明需要在app.json中配置:
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
1、开启小程序进入前后台时均接收位置消息,需引导用户开启授权
授权:scope.userLocationBackground
wx.startLocationUpdateBackground({
type wgs84:gps坐标;gcj02:返回可用于wx.openLocation的坐标
success,...
})
2、开启小程序进入前台时接收位置消息
授权:scope.userLocation
wx.startLocationUpdate({
type wgs84:gps坐标;gcj02:返回可用于wx.openLocation的坐标
success,...
})
2.5、关闭监听实时位置变化,前后台都停止消息接收
wx.stopLocationUpdate({success,...})
3、使用微信内置地图查看位置
wx.openLocation({
latitude 纬度,范围为-90~90,负数表示南纬。使用gcj02国测局坐标系
longitude 经度,范围为-180~180,负数表示西经。使用gcj02国测局坐标系
scale 缩放比例,范围5~18
name 位置名
address 地址的详细说明
success,...
})
4、获取当前的地理位置、速度,当用户离开小程序后,此接口无法调用
授权:scope.userLocation
wx.getLocation({
type wgs84:gps坐标;gcj02:返回可用于wx.openLocation的坐标
altitude 传入true会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度
isHighAccuracy 开启高精度定位
highAccuracyExpireTime 高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果
success,...
})
5、打开地图选择位置,支持模糊定位(精确到市)和精确定位混选
授权:scope.userLocation
wx.choosePoi({
success
type 选择城市时,值为1,选择精确位置时,值为2
city 城市名称
name 位置名称
address 详细地址
latitude 纬度,浮点数,范围为-90~90,负数表示南纬。使用gcj02国测局坐标系
longitude 经度,浮点数,范围为-180~180,负数表示西经。使用gcj02国测局坐标系
...
})
6、打开地图选择位置
授权:scope.userLocation
wx.chooseLocation({
latitude 目标地纬度
longitude 目标地经度
success
name 位置名称
address 详细地址
latitude 纬度,浮点数,范围为-90~90,负数表示南纬。使用gcj02国测局坐标系
longitude 经度,浮点数,范围为-180~180,负数表示西经。使用gcj02国测局坐标系
...
})
7、监听持续定位接口返回失败时触发
wx.onLocationChangeError(fn)
wx.offLocationChangeError(fn) 取消监听
8、监听实时地理位置变化事件,需结合 wx.startLocationUpdateBackground、wx.startLocationUpdate使用
wx.onLocationChange(function(res){
latitude 纬度,范围为-90~90,负数表示南纬。使用gcj02国测局坐标系
longitude 经度,范围为-180~180,负数表示西经。使用gcj02国测局坐标系
speed 速度,单位m/s
accuracy 位置的精确度
altitude 高度,单位m
verticalAccuracy 垂直精度,单位m(Android无法获取,返回0)
horizontalAccuracy 水平精度,单位m
})
wx.offLocationChange(fn) 取消监听
小程序 位置相关api
最新推荐文章于 2024-05-28 16:31:01 发布