export interface Uni { /** * 获取当前的地理位置、速度 * * @tutorial http://uniapp.dcloud.io/api/location/location?id=getlocation */ getLocation: GetLocation; } export type GetLocation = (options: GetLocationOptions) => void; export type GetLocationSuccess = { /** * 纬度,浮点数,范围为-90~90,负数表示南纬 */ latitude: number, /** * 经度,范围为-180~180,负数表示西经 */ longitude: number, /** * 速度,浮点数,单位m/s */ speed: number, /** * 位置的精确度 */ accuracy: number, /** * 高度,单位 m */ altitude: number, /** * 垂直精度,单位 m(Android 无法获取,返回 0) */ verticalAccuracy: number, /** * 水平精度,单位 m */ horizontalAccuracy: number, /** * 地址信息 */ address: any | null }; type GetLocationSuccessCallback = (result: GetLocationSuccess) => void; export type GetLocationFail = UniError; type UniError = { errSubject: string, errCode: number, errMsg: string, data: object | null, cause: any | null }; type GetLocationFailCallback = (result: GetLocationFail) => void; type GetLocationComplete = any; type GetLocationCompleteCallback = (result: GetLocationComplete) => void; export type GetLocationOptions = { /** * 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于uni.openLocation的坐标 */ type?: string | null, /** * 传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度 * @type boolean */ altitude?: boolean | null, /** * 传入 true 会解析地址 * @type boolean */ geocode?: boolean | null, /** * 高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果 */ highAccuracyExpireTime?: number | null, /** * 开启高精度定位 * @type boolean */ isHighAccuracy?: boolean | null, /** * 接口调用成功的回调函数 */ success?: GetLocationSuccessCallback | null, /** * 接口调用失败的回调函数 */ fail?: GetLocationFailCallback | null, /** * 接口调用结束的回调函数(调用成功、失败都会执行) */ complete?: GetLocationCompleteCallback | null };