<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARSession/getGeoLocation(forPoint:completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARSession(im)getGeoLocationForPoint:completionHandler:"
  },
  "title" : "getGeoLocation(forPoint:completionHandler:)"
}
-->

# getGeoLocation(forPoint:completionHandler:)

Converts a position in the framework’s local coordinate system to latitude, longitude and altitude.

```
func getGeoLocation(forPoint position: simd_float3, completionHandler: @escaping @Sendable (CLLocationCoordinate2D, CLLocationDistance, (any Error)?) -> Void)
```

## Parameters

`position`

Position in local coordinates to convert.

`completionHandler`

Code that control will execute when this function returns. The session runs this code on its delegate queue. The parameters are:

- coordinate: Location coordinates (latitude, longitude).
- altitude: The altitude.
- error: The reason, if conversion fails.

## Discussion

ARKit refers to its local coordinate space as “world” coordinate space, but this is different from geographic coordinates. For more information on ARKit’s coordinate space, see [`setWorldOrigin(relativeTransform:)`](/documentation/ARKit/ARSession/setWorldOrigin(relativeTransform:)).

To succeed, this function requires an [`ARGeoTrackingConfiguration`](/documentation/ARKit/ARGeoTrackingConfiguration) session with state equal to [`ARGeoTrackingStatus.State.localized`](/documentation/ARKit/ARGeoTrackingStatus/State-swift.enum/localized).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)