dumon-geolocation/README.md

133 lines
2.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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