Normal position display
For a quickly available map position, MapTools processes current GPS, network and passive Android locations. A last location no older than 30 seconds can speed up startup. This is not a statistical survey.
GPS & markers
Multiple fresh GPS readings are filtered, robustly weighted and combined into a marker position with a transparent quality assessment.
Overview
A single GPS fix is a snapshot. Satellite geometry, obstruction and reflected signals can shift it. A series reveals the spread and reduces the influence of isolated outliers.
For a quickly available map position, MapTools processes current GPS, network and passive Android locations. A last location no older than 30 seconds can speed up startup. This is not a statistical survey.
The measurement starts with an empty series and accepts only new fixes from Android's GPS provider. Old, duplicate, invalid or insufficiently accurate fixes are rejected.
An existing marker can be measured again in further sessions. The new session, the robust combined result and the change in estimated accuracy remain clearly separated.
In practice
The measurement completes only when minimum duration, minimum usable fix count and stability criteria have all been met.
| Profile | Minimum duration | Minimum used fixes | Maximum duration |
|---|---|---|---|
| Short | 15 s | 10 | 30 s |
| Standard | 60 s | 30 | 90 s |
| Long | 180 s | 90 | 300 s |
Technical details
The method is not a simple mean of latitude and longitude. It works in a local metric frame and combines accuracy weights with robust statistics.
Invalid coordinates or accuracy values, fixes from before measurement start, duplicate timestamps and fixes with reported horizontal accuracy above 25 m are rejected.
Movement is detected when at least two of the latest three speeds exceed 1.2 m/s. With at least ten fixes, the centers of the first and last five are also compared. Limit: max(6 m; 1.5 × a_med).
WGS84 coordinates are converted to Earth-fixed ECEF coordinates and then to a local east-north plane (ENU). Distances and weights can therefore be calculated correctly in metres.
The separate medians of east and north form the initial estimate. The radial distance rᵢ from every fix to that center is then calculated.
MapTools calculates MAD = median(|rᵢ − median(r)|). Outlier limit: max(3 m; median(r) + 3 × 1.4826 × MAD).
For reported radius aᵢ, wᵢ = 1 / max(aᵢ; 1 m)². The ratio between the strongest and weakest base weight is capped at 4:1.
The center is updated five times. Inside the limit the robust factor is 1; outside it becomes c / r. The limit is c = max(1.5 m; 1.5 × 1.4826 × MAD).
The weighted ENU center is converted back through ECEF to latitude and longitude. Available altitudes use their median; quality values assess only the horizontal position.
Result
These values answer different questions and must not be treated as interchangeable.
| Display | Calculation | Meaning |
|---|---|---|
| Median reported accuracy | Median of the horizontal accuracy radii reported by Android | The provider's own estimate. Android generally defines this as a radius with about 68% probability for the individual fix. |
| P68 spread | 68th percentile of distances from the robust center | About 68% of the observed fix distances are at or below this value. |
| P95 spread | 95th percentile of distances from the robust center | About 95% of the observed distances are at or below this value. P95 = 4.2 m means roughly 95% of evaluated fixes were no more than about 4.2 m from the center. |
| Center stability | Distance between robust centers of the first and final third | A series is stable at no more than max(3 m; 0.75 × a_med) and P95 ≤ 25 m. |
| Estimated accuracy radius | max(P95_combined; median(a_session)) | MapTools uses the less favorable value so an unusually tight cloud cannot override device-reported uncertainty. |
Radial distances are sorted. With n values, the position is p × (n − 1), using p = 0.68 for P68 and p = 0.95 for P95. MapTools linearly interpolates between neighboring values.
P95 describes observed spread, not a guaranteed 95% confidence radius around the true position. A tight point cloud can be shifted as a whole. Absolute accuracy is not proven without an independent reference.
Assessment
The quality level is based on the estimated radius. Multiple independent time windows improve the strength of the assessment.
| Quality | Estimated radius |
|---|---|
| High | ≤ 5 m |
| Good | > 5 m / ≤ 10 m |
| Fair | > 10 m / ≤ 20 m |
| Poor | > 20 m |
For the combined overall assessment, MapTools awards the highest level only after two independent time windows. A single session is rated Good at best.
A change within max(0.1 m; 0.01 × R_previous) is unchanged. Larger differences are reported by amount and percentage.
Many decimal places in coordinates do not imply matching measurement accuracy. Radius, spread, stability, environment and independent windows matter.
Multiple series
Separate series can capture different satellite constellations and reception conditions, revealing effects hidden in one session.
A session starting less than 90 minutes after the current window began belongs to that window. A later session opens a new one. A marker can retain up to 32 sessions.
Sessions are first robustly combined within each window, then window centers are combined. Outlier rejection also applies at three or more windows. A session center uses at least the larger of P68 and median device accuracy.
Garmin recommends four to eight samples at least 90 minutes apart for careful waypoint averaging. MapTools adopts the idea of varying satellite constellations but uses its own method and is not Garmin-certified.
| Action | What is stored | Marker position |
|---|---|---|
| Save and apply position | The new session is added to history. | The marker receives the robust combined result of all sessions. |
| Save without applying position | The session and combined result remain stored. | The visible marker position remains unchanged. |
| Discard measurement | The new session is not stored. | Position and previous history remain unchanged. |
Applying the combined result uses every stored session. Alternatively, the new session can be kept for documentation only or discarded completely.
Context
Position averaging improves statistical assessment but does not replace suitable reception conditions or independent checks for critical work.
Raw fixes are processed in memory during calculation. Only summarized session data and marker history are stored permanently. Background measurement uses a visible foreground-service status notification.
Sources
Sources are listed as plain text. They provide context for terms and methods; the specific combination and parameters are the ArxSilex MapTools implementation. Status: July 2026.
Location.getAccuracy().Manual
Position averaging can be combined with marker work, coordinate checks and target navigation.