export interface Uni { /** * @description 获取当前的地理位置、速度 * @param {GetLocation} option * @example * ```typescript * uni.getLocation({ * type: 'wgs84', * success: function (res) { * console.log('当前位置的经度:' + res.longitude); * console.log('当前位置的纬度:' + res.latitude); * } * }); * ``` * @tutorial http://uniapp.dcloud.io/api/location/location?id=getlocation * @uniPlatform { * "app": { * "android": { * "osVer": "5.0", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "x", * "uniVer": "x", * "unixVer": "x" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * }9999 * */ getLocation(options: GetLocationOptions):void; } /** * 错误码 * - 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 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; type GetLocationFailCallback = (result: GetLocationFail) => void; type GetLocationComplete = any; type GetLocationCompleteCallback = (result: GetLocationComplete) => void; export type GetLocationOptions = { /** * 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于uni.openLocation的坐标,web端需配置定位 SDK 信息才可支持 gcj02 * @defaultValue wgs84 */ type?: "wgs84" | "gcj02" | "gps" | null, /** * 传入 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 };