Package-level declarations
Types
An axis-aligned WSEN bounding box in decimal degrees. Bounds are inclusive (matches the Apple reference).
A circular geofence centered on centerLat/centerLon (decimal degrees) with radiusMeters.
Radius presets for the waypoint editor. The wire value is ALWAYS metres; the UI renders each value locale-aware via DistanceExtensions. 0 means "Off" (no circle). Imperial values are chosen to render as clean feet/mile figures. Do NOT copy Apple's imperial-only table — the selector list is locale-driven by forUnits.
Properties
Functions
Collapse a raw waypoint-packet list into the set of currently active waypoints, keyed by waypoint id.
The geofences whose crossings THIS device should raise notifications for: waypoints we created (isFromLocal) plus any the user has explicitly opted into (optedInIds). Foreign geofences are excluded by default because waypoints are mesh-broadcast — every receiver stores them, so without this gate everyone in range would alert on the creator's crossings. Only waypoints that actually request crossing notifications (notifiesOnCrossing) survive.
Decode this waypoint's geofence region, or null when it defines neither a circle nor a box. This is the single source of the proto ×1e-7 → decimal-degree conversion, shared by the alert engine, the map overlays, and the editor — keep all geofence coordinate decoding here so the three consumers cannot drift.