---
title: ARGeoTrackingConfiguration
framework: arkit
role: symbol
role_heading: Class
path: arkit/argeotrackingconfiguration
---

# ARGeoTrackingConfiguration

A configuration that tracks locations with GPS, map data, and a device’s compass.

## Declaration

```swift
class ARGeoTrackingConfiguration
```

## Overview

Overview This configuration creates location anchors (ARGeoAnchor) that specify a particular latitude, longitude, and optionally, altitude to enable an app to track geographic areas of interest in an AR experience. important: The isSupported property returns true for this class on iOS 14 & iPadOS 14 devices that have an A12 chip or later and cellular (GPS) capability. Geotracking is available in specific geographic locations. To determine availability at the user’s location at runtime, call checkAvailability(completionHandler:). Geotracking occurs exclusively outdoors. If a geotracking app navigates users between waypoints, your app needs to handle any events along a route. The user must have an internet connection, and you can provide them information about data usage, as described in ARGeoAnchor. Encourage user safety To keep your users’ focus on the road while traveling, discourage them from looking at the device when in motion, such as while riding a bike. Keep users informed when navigating through unfamiliar territory. For instance, you can recommend they steer clear of private property, or remind them to check their device’s battery level before beginning a long route. Refine the user’s position with imagery To place location anchors with precision, geotracking requires a better understanding of the user’s geographic location than is possible with GPS alone. Based on the user’s GPS coordinates, ARKit downloads imagery that depicts the physical environment in that area. Apple collects this localization imagery in advance by capturing photos of the view from the street and recording the geographic position at each photo. By comparing the device’s current camera image with this imagery, the session matches the user’s precise geographic location with the scene’s local coordinates. For information about the user’s position in local space, see transform. Localization imagery captures views from public streets and routes accessible by car, but doesn’t include images of gated or pedestrian-only areas. Geotracking sessions use localization imagery in the ARGeoTrackingStatus.State.localizing state. Supported areas and cities Localization imagery is available for specific areas in over 20 countries, including many metropolitan areas in Australia, Europe, Japan, and North America. To check availability in a particular location, see the checkAvailability(completionHandler:) function. tip: You can share an experience of geotracking with developers who live outside an area that supports it. Record a session in your app in an area that supports localization imagery for developers to create and test their geotracking app. For more information, see Recording and Replaying AR Session Data.

## Topics

### Creating a configuration

- [init()](arkit/argeotrackingconfiguration/init().md)

### Checking availability

- [checkAvailability(completionHandler:)](arkit/argeotrackingconfiguration/checkavailability(completionhandler:).md)
- [checkAvailability(at:completionHandler:)](arkit/argeotrackingconfiguration/checkavailability(at:completionhandler:).md)

### Tracking surfaces

- [planeDetection](arkit/argeotrackingconfiguration/planedetection.md)
- [ARWorldTrackingConfiguration.PlaneDetection](arkit/arworldtrackingconfiguration/planedetection-swift.struct.md)

### Detecting or tracking images

- [detectionImages](arkit/argeotrackingconfiguration/detectionimages.md)
- [maximumNumberOfTrackedImages](arkit/argeotrackingconfiguration/maximumnumberoftrackedimages.md)
- [automaticImageScaleEstimationEnabled](arkit/argeotrackingconfiguration/automaticimagescaleestimationenabled.md)

### Detecting real-world objects

- [detectionObjects](arkit/argeotrackingconfiguration/detectionobjects.md)

### Creating realistic reflections

- [environmentTexturing](arkit/argeotrackingconfiguration/environmenttexturing.md)
- [ARWorldTrackingConfiguration.EnvironmentTexturing](arkit/arworldtrackingconfiguration/environmenttexturing-swift.enum.md)
- [AREnvironmentProbeAnchor](arkit/arenvironmentprobeanchor.md)
- [wantsHDREnvironmentTextures](arkit/argeotrackingconfiguration/wantshdrenvironmenttextures.md)

### Accessing app clip codes

- [Interacting with App Clip Codes in AR](appclip/interacting-with-app-clip-codes-in-ar.md)
- [supportsAppClipCodeTracking](arkit/argeotrackingconfiguration/supportsappclipcodetracking.md)
- [appClipCodeTrackingEnabled](arkit/argeotrackingconfiguration/appclipcodetrackingenabled.md)
- [ARAppClipCodeAnchor](arkit/arappclipcodeanchor.md)

### Instance Properties

- [trackingObjects](arkit/argeotrackingconfiguration/trackingobjects.md)

## Relationships

### Inherits From

- [ARConfiguration](arkit/arconfiguration.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Spatial Tracking

- [Understanding World Tracking](arkit/understanding-world-tracking.md)
- [ARWorldTrackingConfiguration](arkit/arworldtrackingconfiguration.md)
- [AROrientationTrackingConfiguration](arkit/arorientationtrackingconfiguration.md)
- [ARPositionalTrackingConfiguration](arkit/arpositionaltrackingconfiguration.md)
