Skip to main content
版本:v3+

Geolocation

API_LEVEL 2.1 开始支持,API 兼容性请参考 API_LEVEL

定位传感器。

信息

权限代码: device:os.geolocation

方法

start

开始监听定位数据

start(): void

stop

停止监听定位数据

stop(): void

getStatus

获取定位状态,返回 A 代表定位中,返回 V 代表无效定位

getStatus(): string

getLatitude

获取纬度

getLatitude(option: Option): Result

Option

属性类型必填默认值说明API_LEVEL
formatstringDD坐标格式,可选 DD 代表十进制或者 DMS 度分秒的形式2.1

Result

类型说明
number|DMS坐标,坐标系类型 WGS-84

DMS

属性类型说明API_LEVEL
directionstring方向,N 代表北纬,S 代表南纬2.1
degreesnumber2.1
minutesnumber2.1
secondsnumber2.1

getLongitude

获取经度

getLongitude(option: Option): Result

Option

属性类型必填默认值说明API_LEVEL
formatstringDD坐标格式,可选 DD 代表十进制或者 DMS 度分秒的形式2.1

Result

类型说明
number|DMS坐标,坐标系类型 WGS-84

DMS

属性类型说明API_LEVEL
directionstring方向,E 代表东经,W 代表西经2.1
degreesnumber2.1
minutesnumber2.1
secondsnumber2.1

getSetting

API_LEVEL 3.0

获取定位设置

getSetting(): Result

Result

属性类型说明API_LEVEL
modenumber定位设置,值描述详见下方 mode3.0

mode

类型说明API_LEVEL
0number精准模式3.0
1number智能模式3.0
2number均衡模式3.0
3number省电模式3.0
4number超级省电模式3.0
5number自定义模式3.0

onChange

注册定位信息变化事件监听回调函数

onChange(callback: () => void): void

offChange

取消定位信息变化事件监听回调函数

offChange(callback: () => void): void

onGnssChange

API_LEVEL 3.0

注册 GNSS 信息变化事件监听回调函数

onGnssChange(callback: (info: Info) => void): void

Info

属性类型说明API_LEVEL
agps_inject_timenumberAGPS 更新时间 UTC 时间戳,单位毫秒3.0
top4_cn_valnumber定位卫星的信号强度值3.0
is_dualbandnumber是否双频3.0
nb_valid_satellitenumber可用卫星数量3.0
nb_used_satellitenumber使用的卫星数量3.0
elapsed_timenumber从搜索卫星开始到定位成功所消耗的时间,单位秒3.0
satellite_dataArray<SatelliteSystem>卫星数据数组3.0

SatelliteSystem

属性类型说明API_LEVEL
gnss_idnumber卫星系统 ID,值描述见下方 gnss_id3.0
sub_top4_cn_valnumber该卫星系统的最强信号值3.0
nb_valid_satellitenumber搜索到可用卫星数量3.0
gsv_dataArray<Satellite>单颗卫星数据数组,最大长度 323.6

gnss_id

类型说明API_LEVEL
0numberGPS 全球定位系统3.0
1numberBDS 北斗卫星导航系统3.0
2numberGLONASS 全球导航卫星系统3.0
3numberGALILEO 伽利略定位系统3.0
4numberQZSS 准天顶卫星系统3.0
5numberIRNSS 印度区域导航卫星系统3.0

Satellite

属性类型说明API_LEVEL
idnumber卫星 ID3.6
elevationnumber俯仰角3.6
azimuthnumber方位角3.6
snrnumber信噪比3.6

offGnssChange

API_LEVEL 3.0

取消 GNSS 信息变化事件监听回调函数

offGnssChange(callback: (info: Geolocation.onGnssChange.Info) => void): void

getEnabled

API_LEVEL 4.0

获取用户是否允许小程序使用定位功能

getEnabled(): boolean

onEnableChange

API_LEVEL 4.0

注册用户定位授权状态变化事件监听回调函数

onEnableChange(callback: () => void): void

offEnableChange

API_LEVEL 4.0

取消用户定位授权状态变化事件监听回调函数

offEnableChange(callback: () => void): void

代码示例

import { Geolocation } from '@zos/sensor'

const geolocation = new Geolocation()

const callback = () => {
if (geolocation.getStatus() === 'A') {
console.log(geolocation.getLatitude())
console.log(geolocation.getLongitude())
}
}

geolocation.start()
geolocation.onChange(callback)

// When not needed for use
geolocation.offChange(callback)
geolocation.stop()