定位(Location)
Location API 用于获取设备的地理位置、进行正向与反向地理编码、从系统地图中选择位置,以及访问设备的方向与指南针信息。该 API 适用于脚本运行环境、交互式界面以及部分支持位置更新的小组件场景,并遵循系统的权限与精度限制。
LocationAccuracy
表示脚本期望接收的位置精度级别。
类型定义
说明
-
best请求设备可提供的最高精度。 -
tenMeters大约 10 米级别的精度。 -
hundredMeters大约 100 米级别的精度。 -
kilometer大约 1 公里级别的精度。 -
threeKilometers较粗略的 3 公里级别精度。 -
bestForNavigation面向导航场景,精度和更新频率最高,耗电量也更高。 -
reduced使用系统提供的低精度位置,常见于用户仅授权“模糊位置”的情况。
LocationInfo
表示一个基础的地理坐标信息。
类型定义
字段说明
-
latitude纬度,单位为度。 -
longitude经度,单位为度。 -
timestamp位置采集时间,毫秒级时间戳。
LocationPlacemark
表示一个对人类友好的地理位置信息,通常由地理编码或反向地理编码返回。
类型定义
说明
Placemark 可能包含地址、城市、省份、国家、兴趣点等信息。具体字段是否存在取决于系统地图数据和地理位置本身。
Heading
Heading 表示设备的方向与指南针相关信息。
类型定义
字段说明
-
headingAccuracy报告方向与真实地磁方向之间的最大误差,单位为度。 -
trueHeading相对于真北的方向角,单位为度。 -
magneticHeading相对于磁北的方向角,单位为度。 -
timestamp方向数据生成的时间。 -
x、y、z三轴地磁场原始数据,单位为微特斯拉。
授权与配置
isAuthorizedForWidgetUpdates
表示当前小组件是否有资格接收位置更新。该值受系统权限和小组件能力限制影响。
accuracy
当前配置的位置精度级别。
setAccuracy
设置脚本期望的位置精度。更高的精度可能会增加耗电量,并可能触发系统权限请求。
示例
获取当前位置
requestCurrent
请求当前设备的位置。
默认情况下,如果系统中存在可用的缓存位置,会直接返回缓存结果;如果不存在缓存位置,则会发起一次新的定位请求。
当 forceRequest 为 true 时,会忽略缓存位置,始终请求最新位置。
示例
强制请求最新位置:
pickFromMap
打开系统内置地图界面,让用户手动选择一个位置。
示例
地理编码
reverseGeocode
将经纬度坐标转换为可读的地址信息。
示例
geocodeAddress
将文本地址转换为地理位置信息。
示例
方向与指南针
requestHeading
获取最近一次上报的方向信息。如果尚未开始方向更新,则返回 null。
示例
startUpdatingHeading
开始持续监听设备方向变化。
stopUpdatingHeading
停止方向更新。
addHeadingListener
添加一个方向变化监听器。
示例
removeHeadingListener
移除方向监听器。如果未传入参数,将移除所有监听器。
