swan.getLocation
在工具和真机中的实现有区别,详见 API 实现差异。
解释: 获取当前的地理位置、速度。当用户离开智能小程序后,此接口无法调用。使用该 API 需通过获取用户授权设置申请授权后方可对用户发起授权申请,使用 permission 对获取位置信息的用途进行说明,可在 swan.authorize 中查看相关错误码信息。
方法参数
Object object
object 参数说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
type | String | 否 | wgs84 | 返回 gps 坐标,可选 gcj02 。 wgs84 返回 gps 坐标, gcj02 返回火星坐标, gcj02 比 wgs84 更为精确,所以返回可用于传入 swan.openLocation 的坐标 |
altitude | Boolean | 否 | 传入 true 会返回高度信息,获取高度需要较高精度且需要打开 gps ,会很耗时,默认没有用 gps | |
success | Function | 否 | 接口调用成功的回调函数,返回内容详见返回参数说明 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | |
needFullAccuracy | Boolean | 否 | false | 针对ios14 以上的新特性,其他情况本参数忽略。默认情况宿主是精确定位就返回精确定位信息。传入 true 会强制使用精确定位信息,ios14以上如果没有精确定位权限,会弹出精确定位授权弹框 |
success 返回参数说明
参数 | 参数类型 | 说明 | Web 态说明 |
---|---|---|---|
latitude | Number | 纬度,浮点数,范围为 -90~90 ,负数表示南纬 | |
longitude | Number | 经度,浮点数,范围为 -180~180 ,负数表示西经 | |
speed | Number | 速度,浮点数(单位:m/s) | |
accuracy | Number | 位置的精确度 | |
altitude | Number | 高度(单位:m) | |
verticalAccuracy | Number | 垂直精度(单位:m),Android 无法获取,返回 0 | |
horizontalAccuracy | Number | 水平精度(单位:m) | |
street | String | 街道名称 | |
cityCode | String | 城市编码,更新的行政区域信息数据请参考行政区域数据更新映射关系表 | |
city | String | 城市名称 | |
country | String | 国家 | |
countryCode | String | 国家代码 | |
province | String | 省份 | |
streetNumber | String | 街道号码 | |
district | String | 区 | |
isFullAccuracy | Boolean | 是不是精确定位信息 | 始终为 false |
示例
扫码体验
代码示例
请使用百度APP扫码
图片示例
代码示例 1
- SWAN
- JS
<view class="wrap">
<view class="card-area">
<view class="list-area border-bottom" s-for="item in infoList">
<view class="list-item-key-4">{{item.chineseName}}}</view>
<view class="list-item-value">{{item.value}}</view>
</view>
</view>
<view class="swan-security-padding-bottom flex-button">
<button type="primary" bindtap="getLocation">点击获取位置信息</button>
</view>
</view>
图片示例
同一位置下 type 属性为 wgs84 :
同一位置下 type 属性为 gcj02 :
代码示例 2:图示可知 type 属性为 gcj02 的位置更为精准,建议与 swan.openLocation 连用验证
- JS
Page({
getLocation() {
swan.getLocation({
type: 'gcj02',
altitude: true,
success: res => {
console.log('success', res);
swan.openLocation({
latitude: res.latitude,
longitude: res.longitude,
success: res => {
console.log('openLocation success', res);
},
fail: err => {
console.log('openLocation fail', err);
}
});
},
fail: err => {
swan.showToast({title: '获取失败'});
}
});
},
});