小程序开放平台

文档中心
基础
路由
跳转
转发
界面
网络
支付
数据缓存
媒体
位置
getLocation
startLocationUpdate
startLocationUpdateBackground
stopLocationUpdate
onLocationChange
chooseLocation
openLocation
开放接口
设备
XHSML
性能
第三方平台
文件
数据分析
画布

xhs.getLocation

开发
>
JS API
>
位置
>
getLocation
>
更新时间:2025-04-10 19:55:36

以Promise风格调用: 支持

获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定 highAccuracyExpireTime 作为超时时间。地图相关使用的坐标格式应为 gcj02。高频率调用会导致耗电,如有需要可使用持续定位接口 xhs.onLocationChange

参数

Object object

属性
类型
默认值
必填
说明
typestringwgs84wgs84 返回 gps 坐标,gcj02 返回可用于 xhs.openLocation 的坐标。iOS支持
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

属性
类型
说明
latitudenumber纬度,范围为 -90~90,负数表示南纬
longitudenumber经度,范围为 -180~180,负数表示西经
speednumber速度,单位 m/s
accuracynumber位置的精确度
altitudenumber高度,单位 m
verticalAccuracynumber垂直精度,单位 m(Android 无法获取,返回 0)
horizontalAccuracynumber水平精度,单位 m(iOS 无法获取,返回 0)
errMsgstring

实例代码

// 示例代码:以 Promise 风格调用 getLocation
function getLocation(options = {}) {
  return new Promise((resolve, reject) => {
    xhs.getLocation({
      ...options,
      success: (res) => resolve(res),
      fail: (err) => reject(err),
    });
  });
}

// 调用示例
getLocation({
  type: 'gcj02', // 返回可用于 xhs.openLocation 的坐标
})
  .then((res) => {
    console.log('地理位置获取成功:');
    console.log('纬度:', res.latitude);
    console.log('经度:', res.longitude);
    console.log('速度:', res.speed, 'm/s');
    console.log('位置精度:', res.accuracy, 'm');
    console.log('高度:', res.altitude, 'm');
    console.log('垂直精度:', res.verticalAccuracy, 'm');
    console.log('水平精度:', res.horizontalAccuracy, 'm');
  })
  .catch((err) => {
    console.error('地理位置获取失败:', err);
  });