# ARAnchorManagerExtensions

Extensions to AR Foundation's `ARAnchorManager` class.

## Summary

| ### Public static functions ||
|---|---|
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#addanchor(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, double latitude, double longitude, double altitude, https://docs.unity3d.com/ScriptReference/Quaternion.html eunRotation)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` Creates a new anchor at the specified geospatial location and orientation relative to the Earth. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#estimatefeaturemapqualityforhosting(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, https://docs.unity3d.com/ScriptReference/Pose.html pose)` | `https://developers.google.com/ar/reference/unity-arf/namespace/Google/XR/ARCoreExtensions#featuremapquality` Estimates the quality of the visual feature points seen by ARCore in the preceding few seconds and visible from the provided camera *pose* . |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchor(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchor.html anchor)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor` **[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Please use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync` instead with `ttlDays=1`. Creates a new Cloud Anchor using an existing local ARAnchor. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchor(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchor.html anchor, int ttlDays)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor` **[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync` instead with `ttlDays=1`. Creates a new Cloud Anchor with a given lifetime using an existing local `ARAnchor`. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchor.html anchor, int ttlDays)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/HostCloudAnchorPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1HostCloudAnchorPromise` Uses the pose and other data from `anchor` to host a new Cloud Anchor. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronrooftopasync(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, double latitude, double longitude, double altitudeAboveRooftop, https://docs.unity3d.com/ScriptReference/Quaternion.html eunRotation)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnRooftopPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveAnchorOnRooftopPromise` Creates an anchor at a specified horizontal position and altitude relative to the horizontal position's rooftop. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronterrain(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, double latitude, double longitude, double altitudeAboveTerrain, https://docs.unity3d.com/ScriptReference/Quaternion.html eunRotation)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` **[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronterrainasync` instead. Creates a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` at a specified horizontal position and altitude relative to the horizontal position's terrain. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronterrainasync(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, double latitude, double longitude, double altitudeAboveTerrain, https://docs.unity3d.com/ScriptReference/Quaternion.html eunRotation)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnTerrainPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveAnchorOnTerrainPromise` Asynchronously creates a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` at a specified horizontal position and altitude relative to the horizontal position's terrain. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolvecloudanchorasync(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, string cloudAnchorId)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveCloudAnchorPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveCloudAnchorPromise` Attempts to resolve a Cloud Anchor using the provided `cloudAnchorId`. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolvecloudanchorid(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, string cloudAnchorId)` | `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor` **[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolvecloudanchorasync` instead. Creates a new local Cloud Anchor from the provided Id. |
| `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#setauthtoken(this https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.ARAnchorManager.html anchorManager, string authToken)` | `void` Set the token to use when authenticating with the ARCore API on the iOS platform. |

## Public static functions

### AddAnchor

```c#
ARGeospatialAnchor AddAnchor(
  this ARAnchorManager anchorManager,
  double latitude,
  double longitude,
  double altitude,
  Quaternion eunRotation
)
```
Creates a new anchor at the specified geospatial location and orientation relative to the Earth.

Latitude and longitude are defined by the [WGS84 specification](https://en.wikipedia.org/wiki/World_Geodetic_System), and altitude values are defined by the elevation above the WGS84 ellipsoid. To create an anchor using an altitude relative to the Earth's terrain instead of altitude above the WGS84 ellipsoid, use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronterrainasync`.

Creating anchors near the north pole or south pole is not supported. If the latitude is within 0.1 degrees of the north pole or south pole (90 degrees or -90 degrees), this function will return `null`.

The rotation provided by `*eunRotation*` is a rotation with respect to an east-up-north coordinate frame. An identity rotation will have the anchor oriented such that X+ points to the east, Y+ points up away from the center of the earth, and Z+ points to the north.

An anchor's tracking state will be `TrackingState.None` while `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate` is `TrackingState.None`. The tracking state will permanently become `TrackingState.None` if the configuration is set to `GeospatialMode.Disabled`.


Details Parameters `anchorManager` The `ARAnchorManager` instance. `latitude` The latitude of the anchor relative to the WGS84 ellipsoid. `longitude` The longitude of the anchor relative to the WGS84 ellipsoid. `altitude` The altitude of the anchor relative to the WGS84 ellipsoid. `eunRotation` The rotation of the anchor with respect to the east-up-north coordinate frame where X+ points east, Y+ points up away from gravity, and Z+ points north. A rotation about the Y+ axis creates a rotation counterclockwise from north. **Returns** If successful, a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor`, otherwise, `null`.

### EstimateFeatureMapQualityForHosting

```c#
FeatureMapQuality EstimateFeatureMapQualityForHosting(
  this ARAnchorManager anchorManager,
  Pose pose
)
```
Estimates the quality of the visual feature points seen by ARCore in the preceding few seconds and visible from the provided camera *pose* .

Cloud Anchors hosted using higher feature map quality will generally result in easier and more accurately resolved `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor` poses.


Details Parameters `anchorManager` The `ARAnchorManager` instance. `pose` The camera pose to use in estimating the quality. **Returns** The estimated feature map quality.

### HostCloudAnchor

```c#
ARCloudAnchor HostCloudAnchor(
  this ARAnchorManager anchorManager,
  ARAnchor anchor
)
```
Creates a new Cloud Anchor using an existing local ARAnchor.

**[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Please use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync` instead with `ttlDays=1`.
Details Parameters `anchorManager` The `ARAnchorManager` instance. `anchor` The local `ARAnchor` to be used as the basis to host a new Cloud Anchor. **Returns** If successful, a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor`, otherwise `null`.

### HostCloudAnchor

```c#
ARCloudAnchor HostCloudAnchor(
  this ARAnchorManager anchorManager,
  ARAnchor anchor,
  int ttlDays
)
```
Creates a new Cloud Anchor with a given lifetime using an existing local `ARAnchor`.

**[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync` instead with `ttlDays=1`.
Details Parameters `anchorManager` The `ARAnchorManager` instance. `anchor` The local `ARAnchor` to be used as the basis to host a new Cloud Anchor. `ttlDays` The lifetime of the anchor in days. Must be positive. The maximum allowed value is 1 if using an API Key to authenticate with the ARCore API, otherwise the maximum allowed value is 365. **Returns** If successful, an `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor`, otherwise `null`.

### HostCloudAnchorAsync

```c#
HostCloudAnchorPromise HostCloudAnchorAsync(
  this ARAnchorManager anchorManager,
  ARAnchor anchor,
  int ttlDays
)
```
Uses the pose and other data from `anchor` to host a new Cloud Anchor.

A Cloud Anchor is assigned an identifier that can be used to create an `ARAnchor` in the same position in subsequent sessions across devices using `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolvecloudanchorasync`. See the [Cloud Anchors developer guide](https://developers.google.com/ar/develop/unity-arf/cloud-anchors/developer-guide) for more information.

The duration that a Cloud Anchor can be resolved for is specified by `ttlDays`. When using [Keyless authorization](https://developers.google.com/ar/develop/unity-arf/cloud-anchors/developer-guide-android#keyless-authorization) or [Token authorization](https://developers.google.com/ar/develop/unity-arf/cloud-anchors/developer-guide-ios#token-signed-jwt-authorization), the maximum allowed value is 365 days. When using an [API Key](https://developers.google.com/ar/develop/unity-arf/cloud-anchors/developer-guide-android#api-key-authorization) to authenticate with the ARCore API, the maximum allowed value is 1 day.

Cloud Anchors requires a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCoreExtensionsConfig#cloudanchormode` with `CloudAnchorMode.Enabled` set on this session. Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCoreExtensionsConfig#cloudanchormode` to enable the Cloud Anchors API.

Hosting a Cloud Anchor works best when ARCore is able to create a good feature map around the `ARAnchor`. Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#estimatefeaturemapqualityforhosting` to determine the quality of visual features seen by ARCore in the preceding few seconds. Cloud Anchors hosted using higher quality features will generally result in quicker and more accurately resolved Cloud Anchor poses.

This launches an asynchronous operation used to query the Google Cloud ARCore API. See `https://developers.google.com/ar/reference/unity-arf/other` for information on obtaining results and cancelling the operation.

ARCore can have up to 40 simultaneous Cloud Anchor operations, including resolved anchors and active hosting operations.


Details Parameters `anchorManager` The `ARAnchorManager` instance. `anchor` The local `ARAnchor` to be used as the basis to host a new Cloud Anchor. `ttlDays` The lifetime of the anchor in days. Must be positive. The maximum allowed value is 1 if using an API Key to authenticate with the ARCore API, otherwise the maximum allowed value is 365. **Returns** Returns a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/HostCloudAnchorPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1HostCloudAnchorPromise`. See `https://developers.google.com/ar/reference/unity-arf/other` for more information on how to retrieve results from the Promise.

### ResolveAnchorOnRooftopAsync

```c#
ResolveAnchorOnRooftopPromise ResolveAnchorOnRooftopAsync(
  this ARAnchorManager anchorManager,
  double latitude,
  double longitude,
  double altitudeAboveRooftop,
  Quaternion eunRotation
)
```
Creates an anchor at a specified horizontal position and altitude relative to the horizontal position's rooftop.

See the [Rooftop anchors developer guide](https://developers.google.com/ar/develop/geospatial/unity-arf/anchors#rooftop-anchors) for more information.

The specified `*altitudeAboveRooftop*` is interpreted to be relative to the top of a building at the given horizontal location, rather than relative to the WGS84 ellipsoid. If there is no building at the given location, then the altitude is interpreted to be relative to the terrain instead. Specifying an altitude of 0 will position the anchor directly on the rooftop whereas specifying a positive altitude will position the anchor above the rooftop, against the direction of gravity.

This launches an asynchronous operation used to query the Google Cloud ARCore API. See `https://developers.google.com/ar/reference/unity-arf/other` for information on obtaining results and cancelling the operation.

You may resolve multiple anchors at a time, but a session cannot be tracking more than 100 Terrain and Rooftop Anchors at time.

Creating a Rooftop anchor requires `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthstate` to be `EarthState.Enabled` and `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate` to be `TrackingState.Tracking` or `TrackingState.Paused`. If it is not, then `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnRooftopResult#anchor` will be `null`. This call also requires a working internet connection to communicate with the ARCore API on Google Cloud. See [Enable the Geospatial API](https://developers.google.com/ar/develop/unity-arf/geospatial/enable) for more details on required permissions and setup steps. ARCore will continue to retry if it is unable to establish a connection to the ARCore service.

Latitude and longitude are defined by the [WGS84 specification](https://en.wikipedia.org/wiki/World_Geodetic_System).

The rotation provided by `*eunRotation*` is a rotation with respect to an east-up-north coordinate frame. An identity rotation will have the anchor oriented such that X+ points to the east, Y+ points up away from the center of the earth, and Z+ points to the north.

To create a quaternion that represents a clockwise angle theta from north around the +Y anchor frame axis, use the following formula: ` Quaternion.AngleAxis(180f - theta, Vector3.up); `


Details Parameters `anchorManager` The `ARAnchorManager` instance. `latitude` The latitude of the anchor relative to the WGS84 ellipsoid. `longitude` The longitude of the anchor relative to the WGS84 ellipsoid. `altitudeAboveRooftop` The altitude of the anchor above the Earth's Rooftop. `eunRotation` The rotation of the anchor with respect to the east-up-north coordinate frame where X+ points east, Y+ points up away from gravity, and Z+ points north. A rotation about the Y+ axis creates a rotation counterclockwise from north. **Returns** Returns a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnRooftopPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveAnchorOnRooftopPromise`. See `https://developers.google.com/ar/reference/unity-arf/other` for more information on how to retrieve results from the Promise.

### ResolveAnchorOnTerrain

```c#
ARGeospatialAnchor ResolveAnchorOnTerrain(
  this ARAnchorManager anchorManager,
  double latitude,
  double longitude,
  double altitudeAboveTerrain,
  Quaternion eunRotation
)
```
Creates a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` at a specified horizontal position and altitude relative to the horizontal position's terrain.

See the [Terrain anchors developer guide](https://developers.google.com/ar/develop/geospatial/unity-arf/anchors#terrain-anchors) for more information. If the altitude relative to the WGS84 ellipsoid is known, use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#addanchor` instead.

The specified `*altitudeAboveTerrain*` is interpreted to be relative to the Earth's terrain (or floor) at the specified latitude/longitude geospatial coordinates, rather than relative to the WGS84 ellipsoid. Specifying an altitude of 0 will position the anchor directly on the terrain (or floor) whereas specifying a positive altitude will position the anchor above the terrain (or floor), against the direction of gravity.

This creates a new `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` and schedules a task to resolve the anchor's pose using the given parameters. You may resolve multiple anchors at a time, but a session cannot be tracking more than 100 Terrain anchors at time.

The returned Terrain anchor will have its `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#terrainanchorstate` set to `TerrainAnchorState.TaskInProgress`, and its `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#trackingstate` set to `TrackingState.None`. The anchor will remain in this state until its pose has been successfully resolved. If the resolving task results in an error, the anchor's `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#terrainanchorstate` will detail error information.

Creating a Terrain anchor requires `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthstate` to be `EarthState.Enabled`, and `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate` to be `TrackingState.Tracking` or `TrackingState.Paused`. If it is not, then If it is not, then this function returns `null`. This call also requires a working internet. connection to communicate with the ARCore API on Google Cloud. ARCore will continue to retry if it is unable to establish a connection to the ARCore service.

Latitude and longitude are defined by the [WGS84 specification](https://en.wikipedia.org/wiki/World_Geodetic_System). Creating anchors near the north pole or south pole is not supported. If the latitude is within 0.1 degrees of the north pole or south pole (90 degrees or -90 degrees), this function will return `null`.

The rotation provided by `*eunRotation*` is a rotation with respect to an east-up-north coordinate frame. An identity rotation will have the anchor oriented such that X+ points to the east, Y+ points up away from the center of the earth, and Z+ points to the north.

An anchor's tracking state will be `TrackingState.None` while `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate` is `TrackingState.None`. The tracking state will permanently become `TrackingState.None` if the configuration is set to `GeospatialMode.Disabled`.

**[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolveanchoronterrainasync` instead.
Details Parameters `anchorManager` The `ARAnchorManager` instance. `latitude` The latitude of the anchor relative to the WGS84 ellipsoid. `longitude` The longitude of the anchor relative to the WGS84 ellipsoid. `altitudeAboveTerrain` The altitude of the anchor above the Earth's terrain (or floor). `eunRotation` The rotation of the anchor with respect to the east-up-north coordinate frame where X+ points east, Y+ points up away from gravity, and Z+ points north. A rotation about the Y+ axis creates a rotation counterclockwise from north. **Returns** If successful, a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor`, otherwise, `null`.

### ResolveAnchorOnTerrainAsync

```c#
ResolveAnchorOnTerrainPromise ResolveAnchorOnTerrainAsync(
  this ARAnchorManager anchorManager,
  double latitude,
  double longitude,
  double altitudeAboveTerrain,
  Quaternion eunRotation
)
```
Asynchronously creates a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARGeospatialAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARGeospatialAnchor` at a specified horizontal position and altitude relative to the horizontal position's terrain.

See the [Terrain anchors developer guide](https://developers.google.com/ar/develop/geospatial/java/anchors#terrain-anchors) for more information.

The specified `*altitudeAboveTerrain*` is interpreted to be relative to the terrain at the specified latitude/longitude geodetic coordinates, rather than relative to the WGS-84 ellipsoid. Specifying an altitude of 0 will position the anchor directly on the terrain whereas specifying a positive altitude will position the anchor above the terrain, against the direction of gravity.

This launches an asynchronous operation used to query the Google Cloud ARCore API. See `https://developers.google.com/ar/reference/unity-arf/other` for information on obtaining results and cancelling the operation.

Creating anchors near the north pole or south pole is not supported. If the latitude is within 0.1 degrees of the north pole or south pole (90 degrees or -90 degrees), `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnTerrainResult#anchor` will be `null`.

This schedules a task to resolve the anchor's pose using the given parameters. You may resolve multiple anchors at a time, but a session cannot be tracking more than 100 Terrain and Rooftop anchors at time.

Creating a Terrain anchor requires an `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthstate` to be `EarthState.Enabled` and `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate` to be `TrackingState.Tracking` or `TrackingState.Paused`. If it is not, then `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnTerrainResult#anchor` will be `null`. This call also requires a working internet connection to communicate with the ARCore API on Google Cloud. See [Enable the Geospatial API](https://developers.google.com/ar/develop/unity-arf/geospatial/enable) for more details on required permissions and setup steps. ARCore will continue to retry if it is unable to establish a connection to the ARCore service.

Latitude and longitude are defined by the [WGS84 specification](https://en.wikipedia.org/wiki/World_Geodetic_System).

The rotation provided by `*eunRotation*` is a rotation with respect to an east-up-north coordinate frame. An identity rotation will have the anchor oriented such that X+ points to the east, Y+ points up away from the center of the earth, and Z+ points to the north.

To create a quaternion that represents a clockwise angle theta from north around the +Y anchor frame axis, use the following formula: ` Quaternion.AngleAxis(180f - theta, Vector3.up); `


Details Parameters `anchorManager` The `ARAnchorManager` instance. `latitude` The latitude of the anchor relative to the WGS84 ellipsoid. `longitude` The longitude of the anchor relative to the WGS84 ellipsoid. `altitudeAboveTerrain` The altitude of the anchor above the Earth's terrain. `eunRotation` The rotation of the anchor with respect to the east-up-north coordinate frame where X+ points east, Y+ points up away from gravity, and Z+ points north. A rotation about the Y+ axis creates a rotation counterclockwise from north. **Returns** Returns a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveAnchorOnTerrainPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveAnchorOnTerrainPromise`. See `https://developers.google.com/ar/reference/unity-arf/other` for more information on how to retrieve results from the Promise.

### ResolveCloudAnchorAsync

```c#
ResolveCloudAnchorPromise ResolveCloudAnchorAsync(
  this ARAnchorManager anchorManager,
  string cloudAnchorId
)
```
Attempts to resolve a Cloud Anchor using the provided `cloudAnchorId`.

The Cloud Anchor must previously have been hosted by `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#hostcloudanchorasync` or another Cloud Anchor hosting method within the allotted `ttlDays`. See the [Cloud Anchors developer guide](https://developers.google.com/ar/develop/unity-arf/cloud-anchors/developer-guide) for more information.

When resolving a Cloud Anchor, the ARCore API periodically compares visual features from the scene against the anchor's 3D feature map to pinpoint the user's position and orientation relative to the anchor. When it finds a match, the task completes.

This launches an asynchronous operation used to query the Google Cloud ARCore API. See `https://developers.google.com/ar/reference/unity-arf/other` for information on obtaining results and cancelling the operation.

Cloud Anchors requires a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCoreExtensionsConfig#cloudanchormode` with `CloudAnchorMode.Enabled` set on this session. Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCoreExtensionsConfig#cloudanchormode` to enable the Cloud Anchors API.

ARCore can have up to 40 simultaneous Cloud Anchor operations, including resolved anchors and active hosting operations.


Details Parameters `anchorManager` The `ARAnchorManager` instance. `cloudAnchorId` The Cloud Anchor ID to resolve. **Returns** Returns a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ResolveCloudAnchorPromise#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ResolveCloudAnchorPromise`. See `https://developers.google.com/ar/reference/unity-arf/other` for more information on how to retrieve results from the Promise.

### ResolveCloudAnchorId

```c#
ARCloudAnchor ResolveCloudAnchorId(
  this ARAnchorManager anchorManager,
  string cloudAnchorId
)
```
Creates a new local Cloud Anchor from the provided Id.

A session can be resolving up to 40 Cloud Anchors at a given time. If resolving fails, the anchor will be automatically removed from the session.

**[Deprecated.](https://developers.google.com/ar/reference/unity-arf/deprecated/deprecated)** Use `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions#resolvecloudanchorasync` instead.
Details Parameters `anchorManager` The `ARAnchorManager` instance. `cloudAnchorId` String representing the Cloud Anchor. **Returns** If successful, a `https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARCloudAnchor#classGoogle_1_1XR_1_1ARCoreExtensions_1_1ARCloudAnchor`, otherwise `null`.

### SetAuthToken

```c#
void SetAuthToken(
  this ARAnchorManager anchorManager,
  string authToken
)
```
Set the token to use when authenticating with the ARCore API on the iOS platform.

This should be called each time the application's token is refreshed.


Details Parameters `anchorManager` The `ARAnchorManager` instance. `authToken` The authentication token to set.