@codewithvincent/react-native-gps-filter
Version:
Kalman-based adaptive GPS filter for React Native.
48 lines (47 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.kalmanFilterOptions = exports.GPS_SPEED_THRESHOLD = exports.KALMAN_REJECT_THRESHOLD = void 0;
exports.getAdaptiveThresholds = getAdaptiveThresholds;
exports.KALMAN_REJECT_THRESHOLD = 3;
exports.GPS_SPEED_THRESHOLD = 0.1;
exports.kalmanFilterOptions = {
R: 0.01,
Q: 10,
A: 1,
B: 0,
C: 1,
};
function getAdaptiveThresholds(speed) {
if (speed < 0.3) {
return {
minDelta: 1,
maxDelta: 5,
maxAllowedDelta: 20,
mode: "stationary",
};
}
else if (speed < 2) {
return {
minDelta: 1.5,
maxDelta: 30,
maxAllowedDelta: 40,
mode: "walking",
};
}
else if (speed < 5) {
return {
minDelta: 2,
maxDelta: 50,
maxAllowedDelta: 60,
mode: "running",
};
}
else {
return {
minDelta: 3,
maxDelta: 120,
maxAllowedDelta: 100,
mode: "driving",
};
}
}