133 lines
2.4 KiB
Markdown
133 lines
2.4 KiB
Markdown
# dumon-geolocation
|
||
|
||
Plugin Capacitor Android untuk positioning real-time berbasis GNSS multi-konstelasi, Wi-Fi RTT/RSSI, dan IMU (Accelerometer + Gyroscope), dilengkapi dengan sensor fusion (Kalman Filter) dan deteksi lokasi palsu.
|
||
|
||
## 📦 Install
|
||
|
||
```bash
|
||
npm install dumon-geolocation
|
||
npx cap sync
|
||
```
|
||
|
||
## 🚀 API
|
||
|
||
### 📡 startPositioning()
|
||
|
||
```ts
|
||
startPositioning() => Promise<void>
|
||
```
|
||
|
||
Memulai pengambilan data posisi secara real-time dari GNSS, Wi-Fi, dan IMU.
|
||
|
||
---
|
||
|
||
### 🛑 stopPositioning()
|
||
|
||
```ts
|
||
stopPositioning() => Promise<void>
|
||
```
|
||
|
||
Menghentikan semua sensor dan positioning.
|
||
|
||
---
|
||
|
||
### 📍 getLatestPosition()
|
||
|
||
```ts
|
||
getLatestPosition() => Promise<PositioningData>
|
||
```
|
||
|
||
Mengembalikan data posisi terkini yang telah difusi.
|
||
|
||
---
|
||
|
||
### 🔄 addListener('onPositionUpdate', ...)
|
||
|
||
```ts
|
||
addListener(eventName: 'onPositionUpdate', listenerFunc: (data: PositioningData) => void): PluginListenerHandle
|
||
```
|
||
|
||
Listener untuk update posisi secara berkala (real-time).
|
||
|
||
---
|
||
|
||
## 🧾 Interfaces
|
||
|
||
### PositioningData
|
||
|
||
```ts
|
||
interface PositioningData {
|
||
source: 'GNSS' | 'WIFI' | 'FUSED' | 'MOCK';
|
||
latitude: number;
|
||
longitude: number;
|
||
accuracy: number;
|
||
speed: number;
|
||
acceleration: number;
|
||
directionRad: number;
|
||
timestamp: number;
|
||
isMocked: boolean;
|
||
|
||
// Optional raw sensor data (available internally)
|
||
// imuData?: ImuData;
|
||
// gnssData?: SatelliteStatus;
|
||
// wifiData?: WifiAp[];
|
||
}
|
||
```
|
||
|
||
### ImuData
|
||
|
||
```ts
|
||
interface ImuData {
|
||
accelX: number;
|
||
accelY: number;
|
||
accelZ: number;
|
||
gyroX: number;
|
||
gyroY: number;
|
||
gyroZ: number;
|
||
speed: number;
|
||
acceleration: number;
|
||
directionRad: number;
|
||
}
|
||
```
|
||
|
||
### SatelliteStatus
|
||
|
||
```ts
|
||
interface SatelliteStatus {
|
||
satellitesInView: number;
|
||
usedInFix: number;
|
||
constellationCounts: { [key: string]: number };
|
||
}
|
||
```
|
||
|
||
### WifiAp
|
||
|
||
```ts
|
||
interface WifiAp {
|
||
ssid: string;
|
||
bssid: string;
|
||
rssi: number;
|
||
distance?: number;
|
||
}
|
||
```
|
||
|
||
### PluginListenerHandle
|
||
|
||
```ts
|
||
interface PluginListenerHandle {
|
||
remove: () => Promise<void>;
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## ℹ️ Catatan
|
||
- Plugin hanya mendukung platform Android saat ini.
|
||
- Ideal digunakan bersama dengan plugin `Geolocation` bawaan Capacitor untuk fallback atau perbandingan.
|
||
- Sensor fusion berbasis Kalman Filter (versi sederhana).
|
||
- `directionRad` merujuk arah dalam radian relatif terhadap utara (azimuth).
|
||
- Output `isMocked` berguna untuk deteksi lokasi palsu.
|
||
|
||
---
|
||
|
||
Lisensi: MIT – Dibuat oleh Tim Dumon |