# dumon-geolocation
Implement manager GNSS, Wi‑Fi RTT, IMU, Kalman fusion, event emitter
## Install
```bash
npm install dumon-geolocation
npx cap sync
```
## API
* [`startPositioning()`](#startpositioning)
* [`stopPositioning()`](#stoppositioning)
* [`getLatestPosition()`](#getlatestposition)
* [`addListener('onPositionUpdate', ...)`](#addlisteneronpositionupdate-)
* [Interfaces](#interfaces)
### startPositioning()
```typescript
startPositioning() => Promise
```
--------------------
### stopPositioning()
```typescript
stopPositioning() => Promise
```
--------------------
### getLatestPosition()
```typescript
getLatestPosition() => Promise
```
**Returns:** Promise<PositioningData>
--------------------
### addListener('onPositionUpdate', ...)
```typescript
addListener(eventName: 'onPositionUpdate', listenerFunc: (data: PositioningData) => void) => PluginListenerHandle
```
| Param | Type |
| ------------------ | ------------------------------------------------------------------------------ |
| **`eventName`** | 'onPositionUpdate' |
| **`listenerFunc`** | (data: PositioningData) => void |
**Returns:** PluginListenerHandle
--------------------
### Interfaces
#### PositioningData
| Prop | Type |
| --------------- | ----------------------------------------------------------- |
| **`source`** | 'GNSS' \| 'WIFI' \| 'FUSED' \| 'MOCK' |
| **`timestamp`** | number |
| **`latitude`** | number |
| **`longitude`** | number |
| **`accuracy`** | number |
| **`gnssData`** | SatelliteStatus |
| **`wifiData`** | WifiAp[] |
| **`imuData`** | ImuData |
#### SatelliteStatus
| Prop | Type |
| ------------------------- | --------------------------------------- |
| **`satellitesInView`** | number |
| **`usedInFix`** | number |
| **`constellationCounts`** | { [key: string]: number; } |
#### WifiAp
| Prop | Type |
| -------------- | ------------------- |
| **`ssid`** | string |
| **`bssid`** | string |
| **`rssi`** | number |
| **`distance`** | number |
#### ImuData
| Prop | Type |
| ------------------ | ------------------- |
| **`accelX`** | number |
| **`accelY`** | number |
| **`accelZ`** | number |
| **`gyroX`** | number |
| **`gyroY`** | number |
| **`gyroZ`** | number |
| **`speed`** | number |
| **`acceleration`** | number |
| **`directionRad`** | number |
#### PluginListenerHandle
| Prop | Type |
| ------------ | ----------------------------------------- |
| **`remove`** | () => Promise<void> |