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扫码

图片示例

swan.getLocation - 图2

代码示例 1

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  • SWAN
  • JS
  1. <view class="wrap">
  2. <view class="card-area">
  3. <view class="list-area border-bottom" s-for="item in infoList">
  4. <view class="list-item-key-4">{{item.chineseName}}}</view>
  5. <view class="list-item-value">{{item.value}}</view>
  6. </view>
  7. </view>
  8. <view class="swan-security-padding-bottom flex-button">
  9. <button type="primary" bindtap="getLocation">点击获取位置信息</button>
  10. </view>
  11. </view>

图片示例

同一位置下 type 属性为 wgs84 : swan.getLocation - 图3

同一位置下 type 属性为 gcj02 : swan.getLocation - 图4

代码示例 2:图示可知 type 属性为 gcj02 的位置更为精准,建议与 swan.openLocation 连用验证

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  • JS
  1. Page({
  2. getLocation() {
  3. swan.getLocation({
  4. type: 'gcj02',
  5. altitude: true,
  6. success: res => {
  7. console.log('success', res);
  8. swan.openLocation({
  9. latitude: res.latitude,
  10. longitude: res.longitude,
  11. success: res => {
  12. console.log('openLocation success', res);
  13. },
  14. fail: err => {
  15. console.log('openLocation fail', err);
  16. }
  17. });
  18. },
  19. fail: err => {
  20. swan.showToast({title: '获取失败'});
  21. }
  22. });
  23. },
  24. });