后浪云百度小程序教程:swan.getLocation

  • swan.getLocation
    • 方法参数
      • object 参数说明
      • success 返回参数说明
    • 示例
      • 图片示例
      • 代码示例 1
      • 图片示例
      • 代码示例 2:图示可知 type 属性为 gcj02 的位置更为精准,建议与 swan.openLocation 连用验证

    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

    示例

    扫码体验

    代码示例

    后浪云百度小程序教程:swan.getLocation插图

    请使用百度APP扫码

    图片示例

    后浪云百度小程序教程:swan.getLocation插图1

    代码示例 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插图2

    同一位置下 type 属性为 gcj02 : 后浪云百度小程序教程:swan.getLocation插图3

    代码示例 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. });
    THE END