@wemap/providers 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/babel.config.js +11 -0
  2. package/config.json +4 -0
  3. package/debug/absolute-attitude.html +16 -0
  4. package/debug/absolute-position.html +16 -0
  5. package/debug/attitude.html +16 -0
  6. package/debug/components/AbsoluteAttitudeComponent.jsx +142 -0
  7. package/debug/components/AbsolutePositionComponent.jsx +79 -0
  8. package/debug/components/AttitudeComponent.jsx +40 -0
  9. package/debug/components/Common.css +27 -0
  10. package/debug/components/GnssWifiComponent.jsx +53 -0
  11. package/debug/components/ImuComponent.jsx +53 -0
  12. package/debug/components/InclinationComponent.jsx +68 -0
  13. package/debug/components/MapComponent.jsx +366 -0
  14. package/debug/components/NavigationConfig.js +112 -0
  15. package/debug/components/PoseComponent.jsx +168 -0
  16. package/debug/components/RelativeAttitudeComponent.jsx +85 -0
  17. package/debug/components/StartStopComponent.jsx +45 -0
  18. package/debug/components/StepDetectionComponent.jsx +39 -0
  19. package/debug/components/Utils.js +216 -0
  20. package/debug/components/index.js +30 -0
  21. package/debug/components/old/PositioningComponent.jsx +29 -0
  22. package/debug/components/old/PositioningInclinationComponent.jsx +82 -0
  23. package/debug/components/old/PositioningPoseComponent.jsx +117 -0
  24. package/debug/gnss-wifi.html +16 -0
  25. package/debug/imu.html +16 -0
  26. package/debug/inclination.html +16 -0
  27. package/debug/pose.html +16 -0
  28. package/debug/positioning-legacy.html +16 -0
  29. package/debug/relative-attitude.html +16 -0
  30. package/debug/step-detection.html +16 -0
  31. package/index.js +7 -0
  32. package/package.json +67 -0
  33. package/src/Providers.js +80 -0
  34. package/src/ProvidersInterface.js +125 -0
  35. package/src/ProvidersOptions.js +29 -0
  36. package/src/errors/AskImuOnDesktopError.js +9 -0
  37. package/src/errors/ContainsIgnoredProviderError.js +9 -0
  38. package/src/errors/GeolocationApiMissingError.js +9 -0
  39. package/src/errors/GeolocationPermissionDeniedError.js +9 -0
  40. package/src/errors/GeolocationPositionUnavailableError.js +9 -0
  41. package/src/errors/IpResolveServerError.js +9 -0
  42. package/src/errors/MissingAccelerometerError.js +11 -0
  43. package/src/errors/MissingArCoreError.js +9 -0
  44. package/src/errors/MissingGyroscopeError.js +11 -0
  45. package/src/errors/MissingMagnetometerError.js +9 -0
  46. package/src/errors/MissingNativeInterfaceError.js +9 -0
  47. package/src/errors/MissingSensorError.js +14 -0
  48. package/src/errors/NoProviderFoundError.js +9 -0
  49. package/src/events/Availability.js +44 -0
  50. package/src/events/EventType.js +33 -0
  51. package/src/events/ProviderEvent.js +32 -0
  52. package/src/events/ProvidersLogger.js +83 -0
  53. package/src/providers/Constants.js +5 -0
  54. package/src/providers/FakeProvider.spec.js +57 -0
  55. package/src/providers/MetaProvider.js +42 -0
  56. package/src/providers/Provider.js +314 -0
  57. package/src/providers/Provider.spec.js +136 -0
  58. package/src/providers/ProviderState.js +5 -0
  59. package/src/providers/attitude/AttitudeProvider.js +63 -0
  60. package/src/providers/attitude/EkfAttitude.js +224 -0
  61. package/src/providers/attitude/EkfAttitude.spec.js +114 -0
  62. package/src/providers/attitude/absolute/AbsoluteAttitudeFromBrowserProvider.js +224 -0
  63. package/src/providers/attitude/absolute/AbsoluteAttitudeFromRelAttProvider.js +134 -0
  64. package/src/providers/attitude/absolute/AbsoluteAttitudeProvider.js +143 -0
  65. package/src/providers/attitude/relative/RelativeAttitudeFromBrowserProvider.js +89 -0
  66. package/src/providers/attitude/relative/RelativeAttitudeFromEkfProvider.js +114 -0
  67. package/src/providers/attitude/relative/RelativeAttitudeProvider.js +103 -0
  68. package/src/providers/imu/AccelerometerProvider.js +61 -0
  69. package/src/providers/imu/GyroscopeProvider.js +61 -0
  70. package/src/providers/imu/ImuProvider.js +122 -0
  71. package/src/providers/inclination/InclinationFromAccProvider.js +87 -0
  72. package/src/providers/inclination/InclinationFromAttitudeProvider.js +77 -0
  73. package/src/providers/inclination/InclinationProvider.js +69 -0
  74. package/src/providers/legacy/AbsolutePdrProvider.js +258 -0
  75. package/src/providers/legacy/ArCoreAbsoluteProvider.js +230 -0
  76. package/src/providers/legacy/GnssWifiPdrProvider.js +217 -0
  77. package/src/providers/legacy/MapMatchingProvider.js +65 -0
  78. package/src/providers/legacy/PdrProvider.old.js +300 -0
  79. package/src/providers/legacy/PoseProvider.js +68 -0
  80. package/src/providers/legacy/helpers/HeadingUnlocker.js +47 -0
  81. package/src/providers/legacy/helpers/HeadingUnlocker.spec.js +53 -0
  82. package/src/providers/legacy/helpers/Smoother.js +92 -0
  83. package/src/providers/legacy/helpers/Smoother.spec.js +426 -0
  84. package/src/providers/legacy/helpers/ThugDetector.js +37 -0
  85. package/src/providers/others/CameraNativeProvider.js +44 -0
  86. package/src/providers/position/absolute/AbsolutePositionFromRelProvider.js +109 -0
  87. package/src/providers/position/absolute/AbsolutePositionProvider.js +172 -0
  88. package/src/providers/position/absolute/GnssWifiProvider.js +122 -0
  89. package/src/providers/position/absolute/IpProvider.js +68 -0
  90. package/src/providers/position/relative/ArCoreProvider.js +197 -0
  91. package/src/providers/position/relative/GeoRelativePositionFromArCoreProvider.js +85 -0
  92. package/src/providers/position/relative/GeoRelativePositionProvider.js +66 -0
  93. package/src/providers/position/relative/PdrProvider.js +132 -0
  94. package/src/providers/steps/StepDetectionLadetto.js +67 -0
  95. package/src/providers/steps/StepDetectionMinMaxPeaks.js +80 -0
  96. package/src/providers/steps/StepDetectionMinMaxPeaks2.js +108 -0
  97. package/src/providers/steps/StepDetectionProvider.js +100 -0
  98. package/src/smoothers/PositionSmoother.js +86 -0
  99. package/src/smoothers/PositionSmoother.spec.js +55 -0
  100. package/webpack/webpack.common.js +20 -0
  101. package/webpack/webpack.dev.js +24 -0
  102. package/webpack/webpack.prod.js +15 -0
@@ -0,0 +1,426 @@
1
+ import chai from 'chai';
2
+ import chaiAlmost from 'chai-almost';
3
+
4
+ import Smoother from './Smoother';
5
+ import {
6
+ Constants as GeoConstants, Coordinates, UserPosition
7
+ } from '@wemap/geo';
8
+
9
+ const expect = chai.expect;
10
+ chai.use(chaiAlmost(GeoConstants.EPS_MM));
11
+
12
+ const positions = [[0, 0, 0, 0],
13
+ [1.2, 4.4915764205976071E-6, 1.7966305682390469E-6, 0],
14
+ [1.6, 6.2882069888366455E-6, 4.4915764205976266E-6, 0],
15
+ [2.2, 8.084837557075667E-6, 8.0848375570757466E-6, 0],
16
+ [2.3, 3.5932611364778505E-5, 3.5932611364785566E-5, 1],
17
+ [2.7, 4.0424187785375816E-5, 3.5932611364786826E-5, 0],
18
+ [8.5, 4.042418778537667E-5, 2.9644404375949124E-5, 0],
19
+ [9, 3.7729241933018592E-5, 2.6051143239469885E-5, 0],
20
+ [10, 3.4135980796541678E-5, 8.9831528411962763E-6, 0]];
21
+
22
+ const expectations = [
23
+ [0, 0, 0],
24
+ [1.2, 7.4859607009960129e-8, 2.9943842803984042e-8],
25
+ [1.2166666666666666, 1.4971921401992026e-7, 5.9887685607968084e-8],
26
+ [1.2333333333333334, 2.2457882102988041e-7, 8.9831528411952133e-8],
27
+ [1.25, 2.9943842803984051e-7, 1.1977537121593617e-7],
28
+ [1.2666666666666666, 3.7429803504980064e-7, 1.497192140199202e-7],
29
+ [1.2833333333333332, 4.4915764205976082e-7, 1.7966305682390427e-7],
30
+ [1.3, 5.24017249069721e-7, 2.0960689962788833e-7],
31
+ [1.3166666666666667, 5.98876856079681e-7, 2.3955074243187239e-7],
32
+ [1.3333333333333333, 6.7373646308964121e-7, 2.694945852358564e-7],
33
+ [1.3499999999999999, 7.4859607009960129e-7, 2.9943842803984046e-7],
34
+ [1.3666666666666667, 8.2345567710956136e-7, 3.2938227084382447e-7],
35
+ [1.3833333333333333, 8.9831528411952165e-7, 3.5932611364780859e-7],
36
+ [1.4, 9.7317489112948162e-7, 3.892699564517927e-7],
37
+ [1.4166666666666665, 1.0480344981394419e-6, 4.1921379925577671e-7],
38
+ [1.4333333333333333, 1.122894105149402e-6, 4.4915764205976077e-7],
39
+ [1.45, 1.1977537121593618e-6, 4.7910148486374467e-7],
40
+ [1.4666666666666666, 1.2726133191693221e-6, 5.090453276677289e-7],
41
+ [1.4833333333333334, 1.3474729261792824e-6, 5.389891704717128e-7],
42
+ [1.5, 1.4223325331892425e-6, 5.6893301327569691e-7],
43
+ [1.5166666666666666, 1.4971921401992026e-6, 5.98876856079681e-7],
44
+ [1.5333333333333332, 1.5720517472091626e-6, 6.2882069888366514e-7],
45
+ [1.5499999999999998, 1.6469113542191223e-6, 6.5876454168764894e-7],
46
+ [1.5666666666666667, 1.721770961229083e-6, 6.8870838449163348e-7],
47
+ [1.5833333333333333, 1.7966305682390433e-6, 7.1865222729561749e-7],
48
+ [1.6, 1.8714901752490032e-6, 7.4859607009960139e-7],
49
+ [1.6166666666666667, 1.9463497822589632e-6, 7.785399129035854e-7],
50
+ [1.6333333333333333, 2.0212093892689239e-6, 8.0848375570756973e-7],
51
+ [1.65, 2.0960689962788834e-6, 8.3842759851155352e-7],
52
+ [1.6666666666666665, 2.1709286032888433e-6, 8.6837144131553774e-7],
53
+ [1.6833333333333333, 2.245788210298804e-6, 8.9831528411952175e-7],
54
+ [1.7, 2.3206478173087642e-6, 9.2825912692350608e-7],
55
+ [1.7166666666666668, 2.3955074243187241e-6, 9.582029697274902e-7],
56
+ [1.7333333333333334, 2.4703670313286844e-6, 9.88146812531474e-7],
57
+ [1.75, 2.5452266383386438e-6, 1.018090655335458e-6],
58
+ [1.7666666666666666, 2.6200862453486041e-6, 1.0480344981394423e-6],
59
+ [1.7833333333333332, 2.6949458523585648e-6, 1.0779783409434264e-6],
60
+ [1.7999999999999998, 2.7698054593685247e-6, 1.1079221837474106e-6],
61
+ [1.8166666666666667, 2.8446650663784846e-6, 1.1378660265513947e-6],
62
+ [1.8333333333333333, 2.9195246733884444e-6, 1.1678098693553788e-6],
63
+ [1.85, 2.9943842803984051e-6, 1.1977537121593627e-6],
64
+ [1.8666666666666667, 3.0692438874083654e-6, 1.227697554963347e-6],
65
+ [1.8833333333333333, 3.1441034944183253e-6, 1.2576413977673311e-6],
66
+ [1.9, 3.2189631014282852e-6, 1.287585240571315e-6],
67
+ [1.9166666666666665, 3.2938227084382446e-6, 1.3175290833752989e-6],
68
+ [1.9333333333333331, 3.3686823154482057e-6, 1.3474729261792835e-6],
69
+ [1.95, 3.4435419224581673e-6, 1.3774167689832682e-6],
70
+ [1.9666666666666668, 3.5184015294681255e-6, 1.4073606117872515e-6],
71
+ [1.9833333333333334, 3.5932611364780866e-6, 1.4373044545912362e-6],
72
+ [2, 3.668120743488046e-6, 1.46724829739522e-6],
73
+ [2.0166666666666666, 3.7429803504980076e-6, 1.4971921401992045e-6],
74
+ [2.0333333333333332, 3.8178399575079666e-6, 1.5271359830031886e-6],
75
+ [2.05, 3.8926995645179265e-6, 1.5570798258071727e-6],
76
+ [2.0666666666666664, 3.9675591715278863e-6, 1.587023668611157e-6],
77
+ [2.083333333333333, 4.042418778537847e-6, 1.6169675114151414e-6],
78
+ [2.1, 4.1172783855478069e-6, 1.6469113542191253e-6],
79
+ [2.1166666666666667, 4.1921379925577676e-6, 1.6768551970231096e-6],
80
+ [2.1333333333333333, 4.2669975995677266e-6, 1.7067990398270935e-6],
81
+ [2.15, 4.3418572065776865e-6, 1.7367428826310776e-6],
82
+ [2.1666666666666665, 4.4167168135876481e-6, 1.7666867254350624e-6],
83
+ [2.1833333333333331, 4.4915764205976071e-6, 1.796630568239046e-6],
84
+ [2.1833333333333331, 4.5664360276075669e-6, 1.9089199787539871e-6],
85
+ [2.1999999999999997, 4.6412956346175277e-6, 2.0212093892689278e-6],
86
+ [2.2166666666666663, 4.7161552416274867e-6, 2.1334987997838684e-6],
87
+ [2.2333333333333329, 4.7910148486374474e-6, 2.2457882102988086e-6],
88
+ [2.25, 4.8658744556474072e-6, 2.3580776208137493e-6],
89
+ [2.2666666666666666, 4.9407340626573671e-6, 2.47036703132869e-6],
90
+ [2.2833333333333332, 5.0155936696673278e-6, 2.58265644184363e-6],
91
+ [2.3, 5.0904532766772877e-6, 2.6949458523585712e-6],
92
+ [2.3166666666666664, 5.1653128836872475e-6, 2.8072352628735118e-6],
93
+ [2.333333333333333, 5.2401724906972083e-6, 2.9195246733884521e-6],
94
+ [2.3499999999999996, 5.3150320977071673e-6, 3.0318140839033935e-6],
95
+ [2.3666666666666663, 5.3898917047171263e-6, 3.1441034944183342e-6],
96
+ [2.3833333333333333, 5.464751311727087e-6, 3.2563929049332744e-6],
97
+ [2.4, 5.5396109187370469e-6, 3.3686823154482155e-6],
98
+ [2.4166666666666665, 5.6144705257470076e-6, 3.4809717259631557e-6],
99
+ [2.4333333333333331, 5.6893301327569674e-6, 3.5932611364780972e-6],
100
+ [2.4499999999999997, 5.7641897397669256e-6, 3.7055505469930382e-6],
101
+ [2.4666666666666663, 5.8390493467768872e-6, 3.81783995750798e-6],
102
+ [2.4833333333333329, 5.9139089537868462e-6, 3.93012936802292e-6],
103
+ [2.5, 5.988768560796806e-6, 4.0424187785378606e-6],
104
+ [2.5166666666666666, 6.0636281678067668e-6, 4.1547081890528017e-6],
105
+ [2.5333333333333332, 6.1384877748167258e-6, 4.2669975995677427e-6],
106
+ [2.55, 6.2133473818266856e-6, 4.3792870100826838e-6],
107
+ [2.5666666666666664, 6.2882069888366455e-6, 4.4915764205976249e-6],
108
+ [2.5666666666666664, 6.2882069888366455e-6, 4.4915764205976249e-6],
109
+ [2.5666666666666664, 6.3381133935099521e-6, 4.5913892299442406e-6],
110
+ [2.583333333333333, 6.3880197981832578e-6, 4.6912020392908546e-6],
111
+ [2.5999999999999996, 6.4379262028565652e-6, 4.7910148486374694e-6],
112
+ [2.6166666666666663, 6.4878326075298718e-6, 4.8908276579840834e-6],
113
+ [2.6333333333333333, 6.5377390122031775e-6, 4.9906404673306966e-6],
114
+ [2.65, 6.5876454168764841e-6, 5.0904532766773114e-6],
115
+ [2.6666666666666665, 6.6375518215497907e-6, 5.1902660860239254e-6],
116
+ [2.6833333333333331, 6.6874582262230964e-6, 5.2900788953705394e-6],
117
+ [2.6999999999999997, 6.737364630896403e-6, 5.3898917047171542e-6],
118
+ [2.7166666666666663, 6.7872710355697087e-6, 5.4897045140637691e-6],
119
+ [2.7333333333333329, 6.8371774402430161e-6, 5.5895173234103822e-6],
120
+ [2.7499999999999996, 6.8870838449163227e-6, 5.6893301327569962e-6],
121
+ [2.7666666666666666, 6.9369902495896293e-6, 5.7891429421036111e-6],
122
+ [2.7833333333333332, 6.986896654262935e-6, 5.8889557514502259e-6],
123
+ [2.8, 7.0368030589362408e-6, 5.9887685607968391e-6],
124
+ [2.8166666666666664, 7.0867094636095465e-6, 6.0885813701434539e-6],
125
+ [2.833333333333333, 7.1366158682828531e-6, 6.1883941794900688e-6],
126
+ [2.8499999999999996, 7.1865222729561579e-6, 6.2882069888366828e-6],
127
+ [2.8666666666666663, 7.2364286776294654e-6, 6.3880197981832976e-6],
128
+ [2.8833333333333329, 7.2863350823027719e-6, 6.4878326075299125e-6],
129
+ [2.9, 7.3362414869760777e-6, 6.5876454168765273e-6],
130
+ [2.9166666666666665, 7.3861478916493842e-6, 6.68745822622314e-6],
131
+ [2.9333333333333331, 7.4360542963226908e-6, 6.7872710355697553e-6],
132
+ [2.9499999999999997, 7.4859607009959965e-6, 6.8870838449163693e-6],
133
+ [2.9666666666666663, 7.5358671056693006e-6, 6.986896654262985e-6],
134
+ [2.9833333333333329, 7.5857735103426089e-6, 7.0867094636095981e-6],
135
+ [3, 7.6356799150159163e-6, 7.1865222729562138e-6],
136
+ [3.0166666666666666, 7.68558631968922e-6, 7.2863350823028278e-6],
137
+ [3.0333333333333332, 7.7354927243625243e-6, 7.3861478916494435e-6],
138
+ [3.05, 7.7853991290358326e-6, 7.4859607009960567e-6],
139
+ [3.0666666666666664, 7.8353055337091375e-6, 7.5857735103426732e-6],
140
+ [3.083333333333333, 7.8852119383824441e-6, 7.6855863196892872e-6],
141
+ [3.0999999999999996, 7.935118343055749e-6, 7.7853991290359021e-6],
142
+ [3.1166666666666663, 7.9850247477290555e-6, 7.8852119383825186e-6],
143
+ [3.1333333333333329, 8.03493115240236e-6, 7.98502474772913e-6],
144
+ [3.15, 8.084837557075667e-6, 8.0848375570757466e-6],
145
+ [3.15, 8.084837557075667e-6, 8.0848375570757483e-6],
146
+ [3.15, 8.5489671205374136e-6, 8.54896712053751e-6],
147
+ [3.1666666666666665, 9.0130966839991635e-6, 9.0130966839992737e-6],
148
+ [3.1833333333333331, 9.4772262474609084e-6, 9.4772262474610372e-6],
149
+ [3.1999999999999997, 9.9413558109226567e-6, 9.9413558109228041e-6],
150
+ [3.2166666666666668, 1.0405485374384402e-5, 1.0405485374384571e-5],
151
+ [3.2333333333333334, 1.0869614937846148e-5, 1.0869614937846338e-5],
152
+ [3.25, 1.1333744501307891e-5, 1.1333744501308108e-5],
153
+ [3.2666666666666666, 1.1797874064769633e-5, 1.1797874064769879e-5],
154
+ [3.2833333333333332, 1.2262003628231376e-5, 1.2262003628231654e-5],
155
+ [3.3, 1.2726133191693118e-5, 1.2726133191693429e-5],
156
+ [3.3166666666666664, 1.3190262755154859e-5, 1.3190262755155206e-5],
157
+ [3.333333333333333, 1.3654392318616599e-5, 1.3654392318616982e-5],
158
+ [3.35, 1.4118521882078337e-5, 1.4118521882078762e-5],
159
+ [3.3666666666666667, 1.4582651445540075e-5, 1.4582651445540544e-5],
160
+ [3.3833333333333333, 1.5046781009001812e-5, 1.5046781009002326e-5],
161
+ [3.4, 1.551091057246355e-5, 1.5510910572464115e-5],
162
+ [3.4166666666666665, 1.5975040135925286e-5, 1.59750401359259e-5],
163
+ [3.4333333333333331, 1.6439169699387016e-5, 1.643916969938769e-5],
164
+ [3.4499999999999997, 1.6903299262848755e-5, 1.6903299262849481e-5],
165
+ [3.4666666666666668, 1.7367428826310485e-5, 1.7367428826311275e-5],
166
+ [3.4833333333333334, 1.7831558389772215e-5, 1.7831558389773072e-5],
167
+ [3.5, 1.8295687953233951e-5, 1.8295687953234876e-5],
168
+ [3.5166666666666666, 1.8759817516695674e-5, 1.8759817516696674e-5],
169
+ [3.5333333333333332, 1.9223947080157404e-5, 1.9223947080158478e-5],
170
+ [3.55, 1.9688076643619127e-5, 1.9688076643620285e-5],
171
+ [3.5666666666666664, 2.0152206207080849e-5, 2.0152206207082089e-5],
172
+ [3.583333333333333, 2.0616335770542579e-5, 2.0616335770543907e-5],
173
+ [3.6, 2.10804653340043e-5, 2.1080465334005715e-5],
174
+ [3.6166666666666667, 2.1544594897466021e-5, 2.1544594897467539e-5],
175
+ [3.6333333333333333, 2.2008724460927734e-5, 2.2008724460929357e-5],
176
+ [3.65, 2.2472854024389457e-5, 2.2472854024391175e-5],
177
+ [3.6666666666666665, 2.2936983587851173e-5, 2.2936983587853e-5],
178
+ [3.6833333333333331, 2.3401113151312886e-5, 2.3401113151314837e-5],
179
+ [3.7, 2.3865242714774602e-5, 2.3865242714776662e-5],
180
+ [3.7166666666666668, 2.4329372278236315e-5, 2.4329372278238493e-5],
181
+ [3.7333333333333334, 2.479350184169802e-5, 2.4793501841700335e-5],
182
+ [3.75, 2.525763140515973e-5, 2.5257631405162173e-5],
183
+ [3.7666666666666666, 2.5721760968621436e-5, 2.5721760968624017e-5],
184
+ [3.7833333333333332, 2.6185890532083142e-5, 2.6185890532085869e-5],
185
+ [3.8, 2.6650020095544848e-5, 2.6650020095547717e-5],
186
+ [3.8166666666666664, 2.711414965900655e-5, 2.7114149659009569e-5],
187
+ [3.833333333333333, 2.7578279222468256e-5, 2.7578279222471434e-5],
188
+ [3.8499999999999996, 2.8042408785929948e-5, 2.8042408785933296e-5],
189
+ [3.8666666666666667, 2.8506538349391641e-5, 2.8506538349395161e-5],
190
+ [3.8833333333333333, 2.897066791285333e-5, 2.8970667912857026e-5],
191
+ [3.9, 2.9434797476315025e-5, 2.9434797476318905e-5],
192
+ [3.9166666666666665, 2.9898927039776714e-5, 2.989892703978078e-5],
193
+ [3.9333333333333331, 3.0363056603238407e-5, 3.0363056603242666e-5],
194
+ [3.95, 3.08271861667001e-5, 3.0827186166704551e-5],
195
+ [3.9666666666666668, 3.1291315730161778e-5, 3.1291315730166433e-5],
196
+ [3.9833333333333334, 3.1755445293623464e-5, 3.1755445293628329e-5],
197
+ [4, 3.2219574857085142e-5, 3.2219574857090225e-5],
198
+ [4.0166666666666666, 3.2683704420546821e-5, 3.2683704420552127e-5],
199
+ [4.0333333333333332, 3.31478339840085e-5, 3.314783398401403e-5],
200
+ [4.05, 3.3611963547470179e-5, 3.3611963547475946e-5],
201
+ [4.0666666666666664, 3.4076093110931837e-5, 3.4076093110937855e-5],
202
+ [4.083333333333333, 3.4540222674393509e-5, 3.4540222674399777e-5],
203
+ [4.1, 3.5004352237855181e-5, 3.50043522378617e-5],
204
+ [4.1166666666666663, 3.5468481801316847e-5, 3.5468481801323623e-5],
205
+ [4.1333333333333329, 3.5932611364778505e-5, 3.5932611364785566e-5],
206
+ [4.1333333333333329, 3.61197603823034e-5, 3.5932611364785614e-5],
207
+ [4.1499999999999995, 3.630690939982829e-5, 3.5932611364785668e-5],
208
+ [4.1666666666666661, 3.6494058417353176e-5, 3.5932611364785722e-5],
209
+ [4.1833333333333327, 3.6681207434878055e-5, 3.5932611364785776e-5],
210
+ [4.1999999999999993, 3.686835645240294e-5, 3.5932611364785824e-5],
211
+ [4.2166666666666659, 3.705550546992784e-5, 3.5932611364785878e-5],
212
+ [4.2333333333333325, 3.7242654487452725e-5, 3.5932611364785939e-5],
213
+ [4.2499999999999991, 3.7429803504977618e-5, 3.5932611364785986e-5],
214
+ [4.2666666666666666, 3.76169525225025e-5, 3.5932611364786034e-5],
215
+ [4.2833333333333332, 3.7804101540027382e-5, 3.5932611364786088e-5],
216
+ [4.3, 3.7991250557552275e-5, 3.5932611364786135e-5],
217
+ [4.3166666666666664, 3.8178399575077161e-5, 3.5932611364786196e-5],
218
+ [4.333333333333333, 3.8365548592602053e-5, 3.5932611364786251e-5],
219
+ [4.35, 3.8552697610126945e-5, 3.59326113647863e-5],
220
+ [4.3666666666666663, 3.8739846627651831e-5, 3.5932611364786352e-5],
221
+ [4.3833333333333329, 3.8926995645176717e-5, 3.5932611364786406e-5],
222
+ [4.3999999999999995, 3.9114144662701609e-5, 3.5932611364786461e-5],
223
+ [4.4166666666666661, 3.9301293680226488e-5, 3.5932611364786508e-5],
224
+ [4.4333333333333327, 3.9488442697751374e-5, 3.5932611364786555e-5],
225
+ [4.4499999999999993, 3.9675591715276266e-5, 3.593261136478661e-5],
226
+ [4.4666666666666659, 3.9862740732801152e-5, 3.5932611364786671e-5],
227
+ [4.4833333333333325, 4.0049889750326044e-5, 3.5932611364786718e-5],
228
+ [4.4999999999999991, 4.023703876785093e-5, 3.5932611364786772e-5],
229
+ [4.5166666666666666, 4.0424187785375816e-5, 3.5932611364786826e-5],
230
+ [4.5166666666666666, 4.0424187785375823e-5, 3.5932611364786826e-5],
231
+ [8.5, 4.0424187785375829e-5, 3.5827807914972866e-5],
232
+ [8.5166666666666675, 4.042418778537585e-5, 3.5723004465158905e-5],
233
+ [8.5333333333333332, 4.0424187785375863e-5, 3.5618201015344937e-5],
234
+ [8.55, 4.0424187785375884e-5, 3.5513397565530976e-5],
235
+ [8.5666666666666664, 4.04241877853759e-5, 3.5408594115717022e-5],
236
+ [8.5833333333333339, 4.0424187785375918e-5, 3.5303790665903061e-5],
237
+ [8.6, 4.0424187785375931e-5, 3.5198987216089087e-5],
238
+ [8.6166666666666671, 4.0424187785375951e-5, 3.5094183766275132e-5],
239
+ [8.6333333333333329, 4.0424187785375972e-5, 3.4989380316461171e-5],
240
+ [8.65, 4.0424187785375985e-5, 3.4884576866647211e-5],
241
+ [8.6666666666666661, 4.0424187785376006e-5, 3.4779773416833243e-5],
242
+ [8.6833333333333336, 4.0424187785376019e-5, 3.4674969967019282e-5],
243
+ [8.7, 4.0424187785376039e-5, 3.4570166517205321e-5],
244
+ [8.7166666666666668, 4.0424187785376053e-5, 3.446536306739136e-5],
245
+ [8.7333333333333325, 4.0424187785376073e-5, 3.43605596175774e-5],
246
+ [8.75, 4.042418778537608e-5, 3.4255756167763438e-5],
247
+ [8.7666666666666675, 4.04241877853761e-5, 3.4150952717949477e-5],
248
+ [8.7833333333333332, 4.0424187785376114e-5, 3.4046149268135516e-5],
249
+ [8.8, 4.0424187785376134e-5, 3.3941345818321555e-5],
250
+ [8.8166666666666664, 4.0424187785376148e-5, 3.3836542368507588e-5],
251
+ [8.8333333333333339, 4.0424187785376161e-5, 3.3731738918693627e-5],
252
+ [8.85, 4.0424187785376182e-5, 3.3626935468879666e-5],
253
+ [8.8666666666666671, 4.0424187785376195e-5, 3.3522132019065705e-5],
254
+ [8.8833333333333329, 4.04241877853762e-5, 3.3417328569251744e-5],
255
+ [8.9, 4.0424187785376216e-5, 3.3312525119437783e-5],
256
+ [8.9166666666666661, 4.0424187785376243e-5, 3.3207721669623822e-5],
257
+ [8.9333333333333336, 4.0424187785376256e-5, 3.3102918219809861e-5],
258
+ [8.95, 4.0424187785376263e-5, 3.2998114769995894e-5],
259
+ [8.9666666666666668, 4.0424187785376277e-5, 3.2893311320181933e-5],
260
+ [8.9833333333333325, 4.04241877853763e-5, 3.2788507870367972e-5],
261
+ [9, 4.0424187785376311e-5, 3.2683704420554011e-5],
262
+ [9.0166666666666675, 4.0424187785376324e-5, 3.257890097074005e-5],
263
+ [9.0333333333333332, 4.0424187785376338e-5, 3.2474097520926089e-5],
264
+ [9.05, 4.0424187785376351e-5, 3.2369294071112128e-5],
265
+ [9.0666666666666664, 4.0424187785376365e-5, 3.2264490621298167e-5],
266
+ [9.0833333333333339, 4.0424187785376372e-5, 3.2159687171484206e-5],
267
+ [9.1, 4.0424187785376385e-5, 3.2054883721670239e-5],
268
+ [9.1166666666666671, 4.0424187785376412e-5, 3.1950080271856284e-5],
269
+ [9.1333333333333329, 4.0424187785376419e-5, 3.1845276822042324e-5],
270
+ [9.15, 4.0424187785376426e-5, 3.1740473372228363e-5],
271
+ [9.1666666666666661, 4.0424187785376453e-5, 3.1635669922414395e-5],
272
+ [9.1833333333333336, 4.0424187785376453e-5, 3.1530866472600434e-5],
273
+ [9.2, 4.0424187785376466e-5, 3.1426063022786473e-5],
274
+ [9.2166666666666668, 4.0424187785376487e-5, 3.1321259572972512e-5],
275
+ [9.2333333333333325, 4.0424187785376487e-5, 3.1216456123158544e-5],
276
+ [9.25, 4.0424187785376507e-5, 3.1111652673344584e-5],
277
+ [9.2666666666666675, 4.0424187785376521e-5, 3.1006849223530629e-5],
278
+ [9.2833333333333332, 4.0424187785376527e-5, 3.0902045773716668e-5],
279
+ [9.3, 4.0424187785376541e-5, 3.0797242323902708e-5],
280
+ [9.3166666666666664, 4.0424187785376548e-5, 3.069243887408874e-5],
281
+ [9.3333333333333339, 4.0424187785376561e-5, 3.0587635424274779e-5],
282
+ [9.35, 4.0424187785376575e-5, 3.0482831974460815e-5],
283
+ [9.3666666666666671, 4.0424187785376588e-5, 3.0378028524646857e-5],
284
+ [9.3833333333333329, 4.0424187785376588e-5, 3.0273225074832893e-5],
285
+ [9.4, 4.0424187785376609e-5, 3.0168421625018932e-5],
286
+ [9.4166666666666661, 4.0424187785376615e-5, 3.0063618175204971e-5],
287
+ [9.4333333333333336, 4.0424187785376636e-5, 2.995881472539101e-5],
288
+ [9.45, 4.0424187785376636e-5, 2.9854011275577046e-5],
289
+ [9.4666666666666668, 4.0424187785376649e-5, 2.9749207825763085e-5],
290
+ [9.4833333333333325, 4.0424187785376656e-5, 2.9644404375949124e-5],
291
+ [9.4833333333333325, 4.0334356256964728e-5, 2.9524629004733147e-5],
292
+ [9.5, 4.0244524728552794e-5, 2.9404853633517166e-5],
293
+ [9.5166666666666657, 4.0154693200140866e-5, 2.9285078262301189e-5],
294
+ [9.5333333333333332, 4.0064861671728931e-5, 2.9165302891085209e-5],
295
+ [9.5499999999999989, 3.9975030143317e-5, 2.9045527519869232e-5],
296
+ [9.5666666666666664, 3.9885198614905069e-5, 2.8925752148653258e-5],
297
+ [9.5833333333333321, 3.9795367086493128e-5, 2.8805976777437277e-5],
298
+ [9.6, 3.97055355580812e-5, 2.8686201406221304e-5],
299
+ [9.6166666666666654, 3.9615704029669265e-5, 2.8566426035005323e-5],
300
+ [9.6333333333333329, 3.9525872501257331e-5, 2.8446650663789353e-5],
301
+ [9.6499999999999986, 3.9436040972845383e-5, 2.8326875292573376e-5],
302
+ [9.6666666666666661, 3.9346209444433455e-5, 2.82070999213574e-5],
303
+ [9.6833333333333318, 3.9256377916021514e-5, 2.8087324550141421e-5],
304
+ [9.7, 3.9166546387609586e-5, 2.7967549178925451e-5],
305
+ [9.716666666666665, 3.9076714859197645e-5, 2.7847773807709474e-5],
306
+ [9.7333333333333325, 3.898688333078571e-5, 2.7727998436493493e-5],
307
+ [9.75, 3.8897051802373775e-5, 2.7608223065277523e-5],
308
+ [9.7666666666666657, 3.8807220273961841e-5, 2.7488447694061549e-5],
309
+ [9.7833333333333332, 3.8717388745549906e-5, 2.7368672322845576e-5],
310
+ [9.7999999999999989, 3.8627557217137965e-5, 2.7248896951629605e-5],
311
+ [9.8166666666666664, 3.853772568872603e-5, 2.7129121580413628e-5],
312
+ [9.8333333333333321, 3.8447894160314096e-5, 2.7009346209197658e-5],
313
+ [9.85, 3.8358062631902155e-5, 2.6889570837981687e-5],
314
+ [9.8666666666666654, 3.826823110349022e-5, 2.676979546676571e-5],
315
+ [9.8833333333333329, 3.8178399575078285e-5, 2.665002009554974e-5],
316
+ [9.8999999999999986, 3.8088568046666337e-5, 2.6530244724333766e-5],
317
+ [9.9166666666666661, 3.799873651825441e-5, 2.6410469353117793e-5],
318
+ [9.9333333333333318, 3.7908904989842468e-5, 2.6290693981901822e-5],
319
+ [9.95, 3.7819073461430534e-5, 2.6170918610685852e-5],
320
+ [9.966666666666665, 3.7729241933018586e-5, 2.6051143239469878e-5],
321
+ [10, 3.7669354247410677e-5, 2.5766676732831977e-5],
322
+ [10.016666666666667, 3.7609466561802754e-5, 2.5482210226194076e-5],
323
+ [10.033333333333333, 3.7549578876194832e-5, 2.5197743719556168e-5],
324
+ [10.05, 3.74896911905869e-5, 2.4913277212918267e-5],
325
+ [10.066666666666666, 3.7429803504978973e-5, 2.4628810706280365e-5],
326
+ [10.083333333333334, 3.7369915819371044e-5, 2.4344344199642464e-5],
327
+ [10.1, 3.7310028133763121e-5, 2.4059877693004556e-5],
328
+ [10.116666666666667, 3.72501404481552e-5, 2.3775411186366655e-5],
329
+ [10.133333333333333, 3.7190252762547263e-5, 2.3490944679728754e-5],
330
+ [10.15, 3.7130365076939334e-5, 2.3206478173090856e-5],
331
+ [10.166666666666666, 3.7070477391331404e-5, 2.2922011666452952e-5],
332
+ [10.183333333333334, 3.7010589705723468e-5, 2.263754515981505e-5],
333
+ [10.2, 3.6950702020115532e-5, 2.2353078653177153e-5],
334
+ [10.216666666666667, 3.68908143345076e-5, 2.2068612146539251e-5],
335
+ [10.233333333333333, 3.6830926648899667e-5, 2.1784145639901354e-5],
336
+ [10.25, 3.6771038963291724e-5, 2.1499679133263456e-5],
337
+ [10.266666666666667, 3.6711151277683795e-5, 2.1215212626625558e-5],
338
+ [10.283333333333333, 3.6651263592075852e-5, 2.0930746119987657e-5],
339
+ [10.3, 3.6591375906467916e-5, 2.0646279613349759e-5],
340
+ [10.316666666666666, 3.653148822085998e-5, 2.0361813106711865e-5],
341
+ [10.333333333333334, 3.6471600535252044e-5, 2.0077346600073967e-5],
342
+ [10.35, 3.6411712849644094e-5, 1.9792880093436072e-5],
343
+ [10.366666666666667, 3.6351825164036158e-5, 1.9508413586798171e-5],
344
+ [10.383333333333333, 3.6291937478428209e-5, 1.9223947080160277e-5],
345
+ [10.4, 3.6232049792820273e-5, 1.8939480573522386e-5],
346
+ [10.416666666666666, 3.6172162107212323e-5, 1.8655014066884485e-5],
347
+ [10.433333333333334, 3.6112274421604373e-5, 1.837054756024659e-5],
348
+ [10.45, 3.6052386735996431e-5, 1.80860810536087e-5],
349
+ [10.466666666666667, 3.5992499050388481e-5, 1.7801614546970805e-5],
350
+ [10.483333333333333, 3.5932611364780531e-5, 1.7517148040332907e-5],
351
+ [10.5, 3.5872723679172589e-5, 1.7232681533695016e-5],
352
+ [10.516666666666667, 3.5812835993564632e-5, 1.6948215027057122e-5],
353
+ [10.533333333333333, 3.5752948307956683e-5, 1.6663748520419231e-5],
354
+ [10.55, 3.5693060622348733e-5, 1.637928201378134e-5],
355
+ [10.566666666666666, 3.5633172936740783e-5, 1.6094815507143445e-5],
356
+ [10.583333333333334, 3.5573285251132827e-5, 1.5810349000505551e-5],
357
+ [10.6, 3.5513397565524871e-5, 1.5525882493867663e-5],
358
+ [10.616666666666667, 3.5453509879916914e-5, 1.5241415987229779e-5],
359
+ [10.633333333333333, 3.5393622194308958e-5, 1.4956949480591881e-5],
360
+ [10.65, 3.5333734508701008e-5, 1.4672482973953998e-5],
361
+ [10.666666666666666, 3.5273846823093045e-5, 1.43880164673161e-5],
362
+ [10.683333333333334, 3.5213959137485082e-5, 1.4103549960678215e-5],
363
+ [10.7, 3.5154071451877132e-5, 1.3819083454040329e-5],
364
+ [10.716666666666667, 3.5094183766269169e-5, 1.3534616947402439e-5],
365
+ [10.733333333333333, 3.5034296080661206e-5, 1.325015044076455e-5],
366
+ [10.75, 3.4974408395053243e-5, 1.2965683934126661e-5],
367
+ [10.766666666666667, 3.491452070944528e-5, 1.2681217427488777e-5],
368
+ [10.783333333333333, 3.485463302383731e-5, 1.2396750920850886e-5],
369
+ [10.8, 3.4794745338229354e-5, 1.2112284414212998e-5],
370
+ [10.816666666666666, 3.473485765262139e-5, 1.1827817907575114e-5],
371
+ [10.833333333333334, 3.4674969967013414e-5, 1.1543351400937226e-5],
372
+ [10.85, 3.4615082281405457e-5, 1.1258884894299345e-5],
373
+ [10.866666666666667, 3.4555194595797481e-5, 1.0974418387661456e-5],
374
+ [10.883333333333333, 3.4495306910189517e-5, 1.068995188102357e-5],
375
+ [10.9, 3.4435419224581541e-5, 1.0405485374385682e-5],
376
+ [10.916666666666666, 3.4375531538973571e-5, 1.0121018867747805e-5],
377
+ [10.933333333333334, 3.43156438533656e-5, 9.836552361109924e-6],
378
+ [10.95, 3.4255756167757624e-5, 9.552085854472033e-6],
379
+ [10.966666666666667, 3.4195868482149654e-5, 9.26761934783415e-6],
380
+ [10.983333333333333, 3.4135980796541684e-5, 8.9831528411962729e-6]
381
+ ];
382
+
383
+ describe('validSmoother', () => {
384
+
385
+
386
+ it('Should return the good value', () => {
387
+ const smoother = new Smoother();
388
+
389
+ for (let i = 0; i < positions.length; i++) {
390
+ const pos = new UserPosition(positions[i][1], positions[i][2]);
391
+ pos.time = positions[i][0];
392
+ smoother.generateNextPositions(pos, positions[i][3]);
393
+ }
394
+
395
+ const predicted = smoother.positionsQueue;
396
+ expect(predicted.length).to.equal(expectations.length);
397
+
398
+ for (let i = 0; i < predicted.length; i++) {
399
+ const dist = predicted[i].distanceTo(new Coordinates(expectations[i][1], expectations[i][2]));
400
+ const timeDiff = predicted[i].time - expectations[i][0];
401
+ expect(dist).to.almost.equal(0);
402
+ expect(timeDiff).to.almost.equal(0);
403
+ }
404
+
405
+ const positionAt10 = smoother.pullPosition(10);
406
+ expect(positionAt10.distanceTo(new Coordinates(3.7669421260460435E-5, 2.5766995044818355E-5))).to.almost.equal(0);
407
+ });
408
+ });
409
+
410
+ describe('smoother return same value if unique', () => {
411
+
412
+
413
+ it('Should return the good value', () => {
414
+ const smoother = new Smoother();
415
+
416
+ const pos = new UserPosition(positions[0][1], positions[0][2]);
417
+ pos.time = positions[0][0];
418
+ smoother.generateNextPositions(pos);
419
+ const posExpected = smoother.pullPosition();
420
+
421
+ expect(posExpected).to.be.an.instanceof(UserPosition);
422
+ expect(posExpected.distanceTo(pos)).to.almost.equal(0);
423
+ expect(smoother.positionsQueue).to.be.an('array').that.is.empty;
424
+ });
425
+ });
426
+
@@ -0,0 +1,37 @@
1
+ import { Constants as GeoConstants } from '@wemap/geo';
2
+ import { Vector3 } from '@wemap/maths';
3
+
4
+ // in seconds
5
+ const MIN_TIME_BETWEEN_DETECTIONS = 0.5;
6
+
7
+ // in m.s^-2
8
+ const EXT_ACC_NORM_THRESHOLD = 4;
9
+
10
+
11
+ class ThugDetector {
12
+
13
+ constructor() {
14
+ this.lastDetectionTimestamp = 0;
15
+ }
16
+
17
+ compute(timestamp, acceleration) {
18
+
19
+ let detection = false;
20
+
21
+ if (timestamp - this.lastDetectionTimestamp < MIN_TIME_BETWEEN_DETECTIONS) {
22
+ return detection;
23
+ }
24
+
25
+ const extAccNorm = Vector3.norm(acceleration) - GeoConstants.EARTH_GRAVITY;
26
+ if (Math.abs(extAccNorm) > EXT_ACC_NORM_THRESHOLD) {
27
+ detection = true;
28
+ this.lastDetectionTimestamp = timestamp;
29
+ }
30
+
31
+ return detection;
32
+ }
33
+
34
+
35
+ }
36
+
37
+ export default ThugDetector;
@@ -0,0 +1,44 @@
1
+ import MetaProvider from '../MetaProvider';
2
+ import EventType from '../../events/EventType';
3
+ import { ArCore } from '../../Providers';
4
+ import ProviderState from '../ProviderState';
5
+
6
+ class CameraNativeProvider extends MetaProvider {
7
+
8
+ /**
9
+ * @override
10
+ */
11
+ static get eventsType() {
12
+ return [EventType.Inclination];
13
+ }
14
+
15
+ /**
16
+ * @override
17
+ */
18
+ get _availability() {
19
+ return ArCore.availability;
20
+ }
21
+
22
+ /**
23
+ * @override
24
+ */
25
+ start() {
26
+
27
+ if (ArCore.state !== ProviderState.STOPPPED) {
28
+ this.notify(this.createEvent(EventType.CameraNative, 'started'));
29
+ }
30
+ this.providerId = ArCore.addMonitoringListener(
31
+ () => this.notify(this.createEvent(EventType.CameraNative, 'started')),
32
+ () => this.notify(this.createEvent(EventType.CameraNative, 'stopped'))
33
+ );
34
+ }
35
+
36
+ /**
37
+ * @override
38
+ */
39
+ stop() {
40
+ ArCore.removeMonitoringListener(this.providerId);
41
+ }
42
+ }
43
+
44
+ export default CameraNativeProvider;
@@ -0,0 +1,109 @@
1
+ import Provider from '../../Provider';
2
+ import EventType from '../../../events/EventType';
3
+ import ProviderEvent from '../../../events/ProviderEvent';
4
+ import {
5
+ AbsolutePosition, GeoRelativePosition
6
+ } from '../../../Providers';
7
+
8
+ class AbsolutePositionFromRelProvider extends Provider {
9
+
10
+ position = null;
11
+
12
+ /**
13
+ * @override
14
+ */
15
+ static get displayName() {
16
+ return 'Absolute position from Relative position';
17
+ }
18
+
19
+ /**
20
+ * @override
21
+ */
22
+ static get eventsType() {
23
+ return [EventType.AbsolutePosition];
24
+ }
25
+
26
+ /**
27
+ * @override
28
+ */
29
+ get _availability() {
30
+ return GeoRelativePosition.availability;
31
+ }
32
+
33
+
34
+ /**
35
+ * @override
36
+ */
37
+ start() {
38
+
39
+ this.providerId = GeoRelativePosition.addEventListener(
40
+ events => this.onRelativePositionEvent(events[0]),
41
+ this.notifyError,
42
+ this.name
43
+ );
44
+
45
+ this.onAbsolutePositionEvent(AbsolutePosition.lastEvent);
46
+ this.absolutePositionProviderId = AbsolutePosition.addEventListener(
47
+ events => this.onAbsolutePositionEvent(events[0]),
48
+ this.notifyError,
49
+ this.name,
50
+ false
51
+ );
52
+
53
+ }
54
+
55
+
56
+ /**
57
+ * @override
58
+ */
59
+ stop() {
60
+ GeoRelativePosition.removeEventListener(this.providerId);
61
+ AbsolutePosition.removeEventListener(this.absolutePositionProviderId);
62
+ }
63
+
64
+ onAbsolutePositionEvent(absolutePositionEvent) {
65
+
66
+ if (!absolutePositionEvent) {
67
+ return;
68
+ }
69
+
70
+ /**
71
+ * Use absolute position events only when they are not from this provider
72
+ */
73
+ if (absolutePositionEvent.providersStack.includes(this.name)) {
74
+ return;
75
+ }
76
+
77
+ this.position = absolutePositionEvent.data;
78
+ }
79
+
80
+
81
+ /**
82
+ * @param {ProviderEvent} event
83
+ */
84
+ onRelativePositionEvent(event) {
85
+
86
+ if (this.position) {
87
+
88
+ const offsetPos = event.data;
89
+
90
+ const dist = Math.sqrt(offsetPos.x ** 2 + offsetPos.y ** 2);
91
+ const bearing = Math.atan2(offsetPos.x, offsetPos.y);
92
+
93
+ this.position = this.position.destinationPoint(dist, bearing, offsetPos.z);
94
+ this.position.bearing = bearing;
95
+ this.position.time = event.timestamp;
96
+ this.position.accuracy += offsetPos.accuracy;
97
+
98
+ this.notify(this.createEvent(
99
+ EventType.AbsolutePosition,
100
+ this.position,
101
+ event.timestamp,
102
+ [event]
103
+ ));
104
+ }
105
+ }
106
+
107
+ }
108
+
109
+ export default AbsolutePositionFromRelProvider;