interface.uts 3.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
export interface Uni {

  /**
   * @description 获取当前的地理位置、速度
   * @param {GetLocation} option
   * @example
   * ```typescript
   *	uni.getLocation({
   *		type: 'wgs84',
   *		success: function (res) {
   *			console.log('当前位置的经度:' + res.longitude);
   *			console.log('当前位置的纬度:' + res.latitude);
   *		}
   *	});
   * ```
DCloud-yyl's avatar
DCloud-yyl 已提交
16
   * @tutorial http://uniapp.dcloud.io/api/location/location?id=getlocation
17 18 19
   * @uniPlatform {
   *    "app": {
   *        "android": {
DCloud-yyl's avatar
DCloud-yyl 已提交
20
   *            "osVer": "5.0",
21 22 23 24
   *            "uniVer": "√",
   *            "unixVer": "3.9.0"
   *        },
   *        "ios": {
DCloud-yyl's avatar
DCloud-yyl 已提交
25 26 27
   *            "osVer": "12.0",
   *            "uniVer": "√",
   *            "unixVer": "4.11"
28
   *        }
DCloud-yyl's avatar
DCloud-yyl 已提交
29 30 31 32
   *    },
   *    "web": {
   *        "uniVer": "√",
   *        "unixVer": "4.0"
33
   *    }
DCloud-yyl's avatar
DCloud-yyl 已提交
34
   * }
DCloud-yyl's avatar
DCloud-yyl 已提交
35
   * 
36 37 38 39 40 41
   */
  getLocation(options: GetLocationOptions):void;
  
}


DCloud-yyl's avatar
DCloud-yyl 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
/**
 * 错误码
 * - 1505004  缺失权限
 * - 1505005  缺失高精度权限授权(iOS特有)
 * - 1505021  超时
 * - 1505022  不支持的定位类型
 * - 1505023  不支持逆地理编码
 * - 1505024  没有找到具体的定位引擎,请定位开关是否已打开
 * - 1505025  逆地理编码捕获失败
 * - 1505026  捕获定位失败
 */
export type LocationErrorCode = 1505004 | 1505005 | 1505021 | 1505022 | 1505023 | 1505024 | 1505025 | 1505026;
/**
 * 网络请求失败的错误回调参数
 */
export interface IGetLocationFail extends IUniError{
	errCode: LocationErrorCode
};

export type GetLocationFail = IGetLocationFail

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

export type GetLocation = (options: GetLocationOptions) => void;
export type GetLocationSuccess = {
  /**
   * 纬度,浮点数,范围为-90~90,负数表示南纬
   * @defaultValue 0
   */
  latitude: number,
  /**
   * 经度,范围为-180~180,负数表示西经
   * @defaultValue 0
   */
  longitude: number,
  /**
   * 速度,浮点数,单位m/s
   * @defaultValue 0
   */
  speed: number,
  /**
   * 位置的精确度
   */
  accuracy: number,
  /**
   * 高度,单位 m
   * @defaultValue 0
   */
  altitude: number,
  /**
   * 垂直精度,单位 m(Android 无法获取,返回 0)
   * @defaultValue 0
   */
  verticalAccuracy: number,
  /**
   * 水平精度,单位 m
   * @defaultValue 0
   */
  horizontalAccuracy: number,
  /**
   * 地址信息
   * @defaultValue null
   */
  address: any | null
};
type GetLocationSuccessCallback = (result: GetLocationSuccess) => void;
DCloud-yyl's avatar
DCloud-yyl 已提交
107
type GetLocationFailCallback = (result: GetLocationFail) => void;
108 109 110 111
type GetLocationComplete = any;
type GetLocationCompleteCallback = (result: GetLocationComplete) => void;
export type GetLocationOptions = {
  /**
DCloud-yyl's avatar
DCloud-yyl 已提交
112
   * 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于uni.openLocation的坐标,web端需配置定位 SDK 信息才可支持 gcj02
113 114
   * @defaultValue wgs84
   */
DCloud-yyl's avatar
DCloud-yyl 已提交
115
  type?: "wgs84" | "gcj02" | "gps" | null,
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
  /**
   * 传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度
   * @type boolean
   * @defaultValue false
   */
  altitude?: boolean | null,
  /**
   * 传入 true 会解析地址
   * @type boolean
   * @defaultValue false
   */
  geocode?: boolean | null,
  /**
   * 高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果
   * @defaultValue 3000
   */
  highAccuracyExpireTime?: number | null,
  /**
   * 开启高精度定位
   * @type boolean
   * @defaultValue false
   */
  isHighAccuracy?: boolean | null,
  /**
   * 接口调用成功的回调函数
   */
  success?: GetLocationSuccessCallback | null,
  /**
   * 接口调用失败的回调函数
   */
  fail?: GetLocationFailCallback | null,
  /**
   * 接口调用结束的回调函数(调用成功、失败都会执行)
   */
  complete?: GetLocationCompleteCallback | null
};