官方文档: https://developer.garmin.com/connect-iq/programmers-guide/positioning-sensors/
位置传感器
如何设置模拟器支持测试position位置
在模拟器下 > simulation > FIT Data > Simulate Data
然后重新run app即可位置获取都包括哪些方式
enum{
LOCATION_ONE_SHOT, // 单次
LOCATION_CONTINUOUS, //连续
LOCATION_DISABLE //关闭
}
- 最简单代码
//类库
using Toybox.Position;
//调用一次
Position.enableLocationEvents(Position.LOCATION_ONE_SHOT, method(:onPosition));
//
function onPosition(info) {
var myLocation = info.position.toDegrees();
System.println("Latitude: " + myLocation[0]); // e.g. 38.856147
System.println("Longitude: " + myLocation[1]); // e.g -94.800953
}
myLocation获取的值分别为纬度, 经度, 可变参数(通过初始化不同而不同)
- 生成GEO格式字符串
enum
{
GEO_DEG, // Degree Format, ddd.dddddd: 38.278652
GEO_DM, // Degree/Minute Format, dddmm.mmm: 38 27.865'
GEO_DMS, // Degree/Minute/Seconds Format, dddmmss: 38 27' 8"
GEO_MGRS // Military Grid Reference System (MGRS): 4QFJ12345678
}
function onPosition( info ) {
Sys.println( "Position " + info.position.toGeoString( Position.GEO_DM ) );
}
- info内部都包含什么
class Info
{
var position; // 纬度/精度
var speed; // 运动速度(米
var altitude; // 高度, 海拔(米
var accuracy; // 精准度 - good, usable, poor, not available
var heading; // Heading in radians
var when; // gps时间戳
}
心率传感器
- 获取实时心率
Sensor.setEnabledSensors( [Sensor.SENSOR_HEARTRATE] );
Sensor.enableSensorEvents( method( :onSensor ) );
function onSensor(sensorInfo) {
System.println( "Heart Rate: " + sensorInfo.heartRate );
}
- 心率info信息
class Info
{
var speed; // 速度 (米/秒
var cadence; // 节奏 (每分钟
var heartRate; // 每分钟心率
var temperature; // 摄氏温度
var altitude; // 高度(米
var pressure; // 压强(帕
var heading; // Heading in Radians
}