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
formatstringDMS坐标格式,可选 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
formatstringDMS坐标格式,可选 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卫星 ID3.0
sub_top4_cn_valnumber该卫星系统的最强信号值3.0
nb_valid_satellitenumber搜索到可用卫星数量3.0
gsv_dataArray<Satellite>单颗卫星数据数组,最大长度 323.0

Satellite

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

offGnssChange

API_LEVEL 3.0

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

offGnssChange(callback: (...args: any[]) => any): 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()