# wx.getLocation(Object object)

> __以 [Promise 风格](/miniprogram/dev/framework/app-service/api.md#异步-API-返回-Promise) 调用__：支持
> 
> __[用户授权](/miniprogram/dev/framework/open-ability/authorize.md)__：需要 scope.userLocation
> 
> __小程序插件__：支持，需要小程序基础库版本不低于 [1.9.6](1003706)
> 
> __微信 Windows 版__：支持
> 
> __微信 Mac 版__：支持
> 
> __微信 鸿蒙 OS 版__：支持

## 功能描述

获取当前的地理位置、速度。当用户离开小程序后，此接口无法调用。开启高精度定位，接口耗时会增加，可指定 highAccuracyExpireTime 作为超时时间。地图相关使用的坐标格式应为 gcj02。
 高频率调用会导致耗电，如有需要可使用持续定位接口 `wx.onLocationChange`。
 基础库 `2.17.0` 版本起 `wx.getLocation` 增加调用频率限制，[相关公告](https://developers.weixin.qq.com/community/develop/doc/000aee91a98d206bc6dbe722b51801)。

  ## 使用方法
 自 2022 年 7 月 14 日后发布的小程序，若使用该接口，需要在 app.json 中进行声明，否则将无法正常使用该接口，2022年7月14日前发布的小程序不受影响。[具体规则见公告](https://developers.weixin.qq.com/community/develop/doc/000a02f2c5026891650e7f40351c01)

  ## 申请开通
  暂只针对如下类目的小程序开放，需要先通过类目审核，再在小程序管理后台，「开发」-「开发管理」-「接口设置」中自助开通该接口权限。
  接口权限申请入口将于2022年3月11日开始内测，于3月31日全量上线。并从4月18日开始，在代码审核环节将检测该接口是否已完成开通，如未开通，将在代码提审环节进行拦截。

  ### 国内主体开放类目

  | 一级类目/主体类型	| 二级类目	| 应用场景 |
  | -------------- | -------| -------- |
  | 电商平台 |	/	| 售卖商品线下发货、线下收货服务 |
  | 商家自营 |	/	| 提供售卖商品线下发货、线下收货服务、线下商超导览、导航服务 |
  | 医疗服务 | 公立医疗机构、三级私立医疗机构、其他私立医疗机构、就医服务、其他医学健康服务、药品（非处方药）销售、非处方药销售平台、医疗器械生产企业、医疗器械自营、医疗器械经营销售平台、互联网医院血液、干细胞服务、临床试验		| 1、实际物品/药品接收服务 2、基于地理位置取号并现场报到、附近医院导航等服务 |
  | 交通服务 |	/	| 代驾服务、租车网点导航等相关服务 |
  | 生活服务 |	/	| 上门服务作业等线下场景  |
  | 物流服务 |	收件/派件、查件、邮政、装卸搬运、快递柜、货物运输	 |	快递/货物收发服务 |
  | 餐饮服务 | 	点餐平台、外卖平台、餐饮服务场所/餐饮服务管理企业	| 线下送餐服务 |
  | 工具	| 天气、信息查询、办公、设备管理 |	与地理位置相关的服务，比如潮汐查询、海拔查询、天气查询、智能穿戴、智能门禁、与地理位置相关的打卡服务等 |
  | 金融  | 银行、非金融机构自营小额贷款/融资担保/商业保理、保险 | 提供线下网点预约、基于地理位置取号并现场报到、附近网点导航等服务；异常账户和可疑交易检测（只支持银行类目申请） |
  | 旅游  | 景区服务、住宿服务 | 提供景区导航、导览服务、酒店导航服务 |
  | 汽车服务 | 维修保养、汽车用品、汽车经销商/4S店、汽车厂商、汽车预售、二手车 | 提供汽车售卖、维保洗美服务、查找附近的维修点/洗车网点等导航服务 |
  | IT科技 | 基础电信运营商、电信业务代理商 | 提供运营商线下网点的预约、基于地理位置取号并现场报到、网点导航等服务 |
  | 房地产服务 | 物业管理、房屋中介、房屋装修 | 提供房地产开发商及物业公司门店导览导航服务 |
  | 政务民生 |	/	 | 提供政务单位相关业务 |
  | 政府主体账号 |	/	| 提供政务单位相关业务 |

  ### 海外主体开放类目

  | 一级类目/主体类型	| 二级类目	| 应用场景 |
  | -------------- | -------| -------- |
  | 出行与交通	 | /	 | 代驾服务、租车网点导航等相关服务 |
  | 快递业与邮政	 | /	 | 快递/货物收发服务 |
  | 餐饮	 | 外卖点餐	 | 线下送餐服务 |
  | 出行与交通	 | /	 | 代驾服务、租车网点导航等相关服务 |
  | 跨境电商	 | /	 | 提供售卖商品线下发货、收货服务、线下商超导览、导航服务 |
  | 本地服务	 | 电商平台、服装/鞋/箱包、玩具、家电/数码/手机、美妆/洗护、珠宝/饰品/眼镜/钟表、运动/户外/乐器、鲜花/园艺/工艺品、家居/家饰/家纺、办公/文具、机械/电子器件、酒、食品、百货、超市/便利店、宠物食品/用品	 | 提供售卖商品线下发货、线下收货服务、线下商超导览、导航服务 |
  | 生活服务	 | 家政、外送、票务	 | 上门服务作业、景区导览服务等线下场景 |
  | 旅游	 | 酒店服务	 | 提供酒店位置导航服务 |

## 参数

### Object object

| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
| ---- | ---- | ------ | -------- | ---- | -------- |
| type | string | wgs84 | 否 | wgs84 返回 gps 坐标，gcj02 返回可用于 wx.openLocation 的坐标 |  |
| altitude | boolean | false | 否 | 传入 true 会返回高度信息，由于获取高度需要较高精确度，会减慢接口返回速度 | [1.6.0](1003706) |
| isHighAccuracy | boolean | false | 否 | 开启高精度定位 | [2.9.0](1003706) |
| highAccuracyExpireTime | number |  | 否 | 高精度定位超时时间(ms)，指定时间内返回最高精度，该值3000ms以上高精度定位才有效果 | [2.9.0](1003706) |
| success | function |  | 否 | 接口调用成功的回调函数 |  |
| fail | function |  | 否 | 接口调用失败的回调函数 |  |
| complete | function |  | 否 | 接口调用结束的回调函数（调用成功、失败都会执行） |  |

#### object.success 回调函数
##### 参数

###### Object res

| 属性 | 类型 | 说明 | 最低版本 |
| ---- | ---- | ---- | -------- |
| latitude  | number | 纬度，范围为 -90~90，负数表示南纬 |  |
| longitude  | number | 经度，范围为 -180~180，负数表示西经 |  |
| speed  | number | 速度，单位 m/s |  |
| accuracy  | number | 位置的精确度，反应与真实位置之间的接近程度，可以理解成10即与真实位置相差10m，越小越精确 |  |
| altitude  | number | 高度，单位 m | [1.2.0](1003706) |
| verticalAccuracy  | number | 垂直精度，单位 m（Android 无法获取，返回 0） | [1.2.0](1003706) |
| horizontalAccuracy  | number | 水平精度，单位 m | [1.2.0](1003706) |

## 示例代码

 ```js
 wx.getLocation({
  type: 'wgs84',
  success (res) {
    const latitude = res.latitude
    const longitude = res.longitude
    const speed = res.speed
    const accuracy = res.accuracy
  }
})
 ```

## 注意

- `2.17.0 起 `wx.getLocation` 增加调用频率限制，[相关公告](https://developers.weixin.qq.com/community/develop/doc/000aee91a98d206bc6dbe722b51801)
- 工具中定位模拟使用IP定位，可能会有一定误差。且工具目前仅支持 gcj02 坐标。
- 使用第三方服务进行逆地址解析时，请确认第三方服务默认的坐标系，正确进行坐标转换。
