Implementing augmented reality (AR) navigation in a mobile application is a task we have been solving for over 5 years. Outwardly, it's a simple directional indicator over the camera feed, but behind it lie three fundamentally different scenarios: outdoor (exterior open areas), indoor (interior of buildings), and multi-floor navigation across shopping malls or airports. For each, we select a custom technology stack: from standard Global Positioning System (GPS) combined with magnetometer heading estimation to Visual Positioning System (VPS) based on Immersal SDK. Outdoor AR navigation relies on GPS and heading sensors, but GPS localization precision in urban canyons is only 3-8 meters, insufficient for pedestrian-grade wayfinding. For indoor environments, GPS is unavailable, so BLE beacons or VPS are employed. In this technical guide, we break down the engineering details: how to mitigate accumulated tracking drift, calibrate the magnetometer, and achieve localization precision up to 10 cm indoors. Savings on operating AR navigation compared to traditional signage can reach 40% annually. Development cost for a basic outdoor AR navigation prototype starts from $5,000, while a full indoor VPS solution can reach $20,000. The system typically pays for itself within 3-6 months for shopping malls over 10,000 m². With over 5 years of AR development experience and 20+ delivered AR navigation projects, we are a trusted partner holding Apple and Google AR certifications. Our metrics: 5+ years in AR, 20+ projects, guaranteed quality.
Outdoor AR Navigation Mechanics
The foundation is GPS + magnetometer + ARKit/ARCore. We use CLLocationManager for GPS coordinates, CLHeading for heading estimation, and ARKit/ARCore for orientation stabilization via visual-inertial odometry. GPS accuracy in urban settings is 3-8 meters, sufficient for macroscopic directions (e.g., "go 200 meters straight"), but not for precise turn-by-turn instructions at sidewalk level. To supplement GPS in urban canyons, we employ visual odometry based on feature tracking (ORB, SURF) to reduce positioning error.
ARKit Geo Tracking (iPhone XS+ models in supported cities) provides superior performance. ARGeoTrackingConfiguration fuses GPS, magnetometer, and street-level imagery from Apple Maps to achieve localization precision of 1-3 meters. ARGeoAnchor is attached to WGS84 coordinates, and ARKit maintains stable anchor placement as the user moves. Compared to standard GPS+compass, ARKit Geo Tracking offers a 3-4x improvement in precision, critical for navigation in dense urban environments.
According to Apple ARGeoAnchor documentation, accuracy reaches 1-3 meters under ideal conditions.
let anchor = ARGeoAnchor(
coordinate: CLLocationCoordinate2D(latitude: 53.9045, longitude: 27.5615),
altitude: nil
)
arView.session.add(anchor: anchor)
ARGeoTrackingStatus.stateReason indicates why geo tracking is failing (.notYetInitialized, .geoDataNotLoaded, .visualLocalizationFailed). The latter occurs in poor lighting or on less-mapped streets—requiring a fallback to standard GPS+compass.
Indoor Navigation Challenges and Implementation
GPS does not operate indoors. Consider the primary options:
| Technology | Localization Precision | Integration Complexity | Upfront Cost |
|---|---|---|---|
| Beacon/BLE | 2-10 m | Medium | High (purchase beacons) |
| ARKit relative tracking | 0.5-2% accumulated drift error | Low | Zero |
| VPS (Immersal SDK) | 10-30 cm | High | Commercial license |
Immersal SDK — the most practical choice for custom indoor VPS. Cloud-based localization: photograph the space with Immersal Mapper, the SDK localizes the user by visual feature matching with 10-30 cm precision. Works on iOS (ARKit) and Android (ARCore). Immersal VPS provides 20-100x better accuracy than BLE beacons, reducing drift by an order of magnitude compared to ARKit relative tracking.
Also consider Google Visual Positioning Service (ARCore 1.24+), but coverage in the CIS is minimal.
Route Rendering in AR and Common Pitfalls
The path in AR is a chain of 3D waypoints connected by directional arrows or "breadcrumbs" at floor level. For smooth route following, we use a Catmull-Rom spline interpolated through waypoints—otherwise arrows appear too angular at turns.
The directional indicator is rendered as a ModelEntity with a USDZ model (GLB for ARCore), billboard-rotated toward the camera on the Y-axis. At turns, we use a pulsing animation via FromToByAnimation in RealityKit.
Critical: arrows must adhere to the detected floor plane, not float in midair. For that, we perform raycasting downward from each waypoint onto detected horizontal planes.
Common issues and fixes:
- Magnetometer on Android jitters: apply a complementary filter (Mahony/Madgwick) with user calibration UI.
- Indoor ARKit accumulated drift: use checkpoint QR codes every 50 meters for recalibration.
- No VPS coverage: fallback to BLE + beacons with a weighted fusion algorithm.
Now for typical engineering pains: magnetometer on Android—SensorManager.SENSOR_DELAY_GAME with a low-pass filter. We employ a complementary filter combining accelerometer, gyroscope, and magnetometer data to reduce orientation noise by 60%. Without filtering, the directional indicator "jumps" 15-20° per second. A poorly calibrated magnetometer near metal structures introduces deviation up to 30°. We prompt the user to calibrate when SensorAccuracy.LOW is detected. On Android, a figure-eight wave gesture is requested; on iOS, the system calibration interface appears automatically.
How We Implement AR Navigation: Step-by-Step Plan
- Analyze scenarios and required localization precision.
- Choose technology stack: GPS+compass, ARKit Geo Tracking, VPS, or BLE.
- Develop a prototype with basic tracking.
- Calibrate sensors and test in real-world conditions.
- Integrate with backend and configure push notifications (APNs/FCM).
- Publish to App Store and Google Play.
Timeline: outdoor on GPS—2-3 weeks; with Geo Tracking add one more week. Indoor on VPS—from 4 weeks including indoor mapping. Cost is calculated individually, but AR navigation on VPS pays off in 3-6 months for shopping malls from 10,000 m².
What's Included in the Turnkey Solution
When ordering full-cycle AR navigation development, we provide:
- Technical specification and architecture documentation.
- Native ARKit/ARCore code implementation.
- Integration with your backend or our infrastructure.
- Configuration of publish profiles, code signing, and push notifications (APNs/FCM).
- Deployment to App Store and Google Play.
- Training your team on the AR module.
- Support for 3 months after launch.
- Guaranteed localization precision within specified tolerance after calibration.
We are a team of mobile developers with 5+ years of AR experience, having completed over 20 AR navigation projects—including outdoor and indoor solutions for shopping malls and airports. With 5+ years on the market and Apple/Google AR certifications, we deliver high-quality results. Our AR navigation solutions cover both outdoor AR navigation with GPS and ARKit Geo Tracking, and indoor AR navigation with VPS or BLE beacons, ensuring accurate positioning in any environment. Compared to traditional signage, AR navigation is 3x faster for users to find a location and reduces decision time by 50%.







