官方文檔: https://developer.garmin.com/connect-iq/programmers-guide/positioning-sensors/
位置傳感器
如何設(shè)置模擬器支持測試position位置
在模擬器下 > simulation > FIT Data > Simulate Data
然后重新run app即可位置獲取都包括哪些方式
enum{
LOCATION_ONE_SHOT, // 單次
LOCATION_CONTINUOUS, //連續(xù)
LOCATION_DISABLE //關(guān)閉
}
- 最簡單代碼
//類庫
using Toybox.Position;
//調(diào)用一次
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獲取的值分別為緯度, 經(jīng)度, 可變參數(shù)(通過初始化不同而不同)
- 生成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內(nèi)部都包含什么
class Info
{
var position; // 緯度/精度
var speed; // 運(yùn)動(dòng)速度(米
var altitude; // 高度, 海拔(米
var accuracy; // 精準(zhǔn)度 - good, usable, poor, not available
var heading; // Heading in radians
var when; // gps時(shí)間戳
}
心率傳感器
- 獲取實(shí)時(shí)心率
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; // 節(jié)奏 (每分鐘
var heartRate; // 每分鐘心率
var temperature; // 攝氏溫度
var altitude; // 高度(米
var pressure; // 壓強(qiáng)(帕
var heading; // Heading in Radians
}