swan.getLocation

在工具和真机中的实现有区别,详见API 实现差异

解释: 获取当前的地理位置、速度。当用户离开智能小程序后,此接口无法调用。使用该 API 需通过获取用户权限设置swan.getLocation - 图1申请授权后方可对用户发起授权申请,可在需授权接口列表swan.getLocation - 图2中查看相关错误码信息。

方法参数

Object object

object参数说明 :

属性名类型必填默认值说明
typeStringwgs84返回 gps 坐标,可选 gcj02 。wgs84 返回 gps 坐标,gcj02 返回火星坐标,gcj02 比 wgs84更为精确,所以返回可用于传入 swan.openLocation 的坐标
altitudeBoolean传入 true 会返回高度信息,获取高度需要较高精度且需要打开 gps, 会很耗时 ,默认没有用 gps。
successFunction接口调用成功的回调函数,返回内容详见返回参数说明。
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明 :

参数说明
latitude纬度,浮点数,范围为-90~90,负数表示南纬。
longitude经度,浮点数,范围为-180~180,负数表示西经。
speed速度,浮点数,单位m/s。
accuracy位置的精确度
altitude高度,单位 m 。
verticalAccuracy垂直精度,单位 m(Android 无法获取,返回 0) 。
horizontalAccuracy水平精度,单位 m 。
street街道名称
cityCode城市编码
city城市名称
country国家
countryCode国家代码
province省份
streetNumber街道号码
district

示例

扫码体验

swan.getLocation - 图3请使用百度APP扫码

图片示例

swan.getLocation - 图4

swan.getLocation - 图5

swan.getLocation - 图6

代码示例1

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. getLocation() {
  3. swan.getLocation({
  4. type: 'wgs84',
  5. altitude: true,
  6. success: res => {
  7. console.log('getLocation success', res)
  8. },
  9. fail: err => {
  10. console.log('getLocation fail', err)
  11. }
  12. });
  13. }
  14. });

图片示例

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

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

swan.getLocation - 图9

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

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. getLocation(e) {
  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 : function (err) {
  15. console.log('openLocation fail', err);
  16. }
  17. });
  18. },
  19. fail: err => {
  20. swan.showToast({title: '获取失败'});
  21. },
  22. complete: () => {
  23. this.setData('loading', false);
  24. }
  25. });
  26. },
  27. });