# ARVps2Manager Source: https://www.nianticspatial.com/docs/api/unity/NianticSpatial.NSDK.AR.VPS2.ARVps2Manager/ ARVps2Manager > extends UnityEngine.XR.ARFoundation.SubsystemLifecycleManager --- ## Declaration public class ARVps2Manager : SubsystemLifecycleManager ## Summary The entry point to VPS2: configuration, localization, geolocation, anchors, and asset tracking. ## Remarks This manager owns the VPS2 feature's lifecycle. The trackables are served by the ARVps2AnchorManager and ARVps2AssetManager components required next to it; the anchor and asset methods here forward to them. --- ## Properties | Name | Type | Summary | | --- | --- | --- | | AnchorDistanceGateMeters | float | Distance gate in meters for anchor candidate filtering when geo-corrected. Nodes farther than this distance from the device are skipped during anchor localization. When only GPS is available (no geo-correction), the effective gate is 2x this value. Pass 0 to use the default value (100 meters geo-corrected, 200 meters GPS-only). Pass -1 to disable the distance check entirely. | | readonly AnchorManager | ARVps2AnchorManager | The trackable manager serving ARVps2Anchors. | | readonly AssetManager | ARVps2AssetManager | The trackable manager serving ARVps2Assets. | | AssetTargetingEnterMarginMeters | float | How far outside a VPS asset's geographic bounds the device can be and still start localizing against that asset, in meters. Covers ordinary GPS error, so a device standing just outside an asset still picks it up. An asset the server published no bounds for is always a candidate. 0 uses the default (25 meters); a negative value means no margin, judging the bounds exactly. | | AssetTargetingExitMarginMeters | float | How far outside its bounds an asset already being localized against is kept, in meters. Larger than AssetTargetingEnterMarginMeters on purpose: the gap between the two is what stops a device sitting on the boundary between two assets swapping between them on every position update. A value below the enter margin is raised to it. 0 uses the default (50 meters); a negative value means no margin. | | BlurDetectionEnabled | bool | If true, enable the image blur check on the cloud localization path. Advisory only: a frame whose sharpness score is below MinSharpnessScore produces a FrameFlagged localization request record (error ImageTooBlurry) so the app can warn the user, but is still sent for localization, never rejected. Default false (disabled). | | ContinuousVpsRequestsPerSecond | float | Number of VPS localization requests per second to send the server after the first successful localization on a VPS map. | | DeviceMapLocalizationEnabled | bool | If true, localization on device maps is enabled. Device maps are created by the on-device mapping feature. They do not provide a georeference. | | DeviceMapLocalizationFramerate | int | Number of times per second to attempt localization on available device maps. | | GeolocationSmoothingEnabled | bool | If true, enables smooth interpolation between VPS2 localization updates. As VPS2 updates its estimate from one localization to another, having interpolation enabled will provide a more stable experience, especially when GPS or compass readings update abruptly. | | InitialVpsRequestsPerSecond | float | Number of VPS localization requests per second to send the server prior to the first successful localization on a VPS map. | | MaxRequestsInTransitPerTarget | uint | Maximum number of concurrent localization requests per target. Pass 0 to use the default value (2). | | MinSharpnessScore | float | Sharpness threshold below which a frame is flagged as too blurry. Higher scores mean sharper images. The default 0 flags nothing, since the score is always non-negative. Only used when BlurDetectionEnabled is true. | | TemporalFusionEnabled | bool | If true, successive VPS localizations are temporally fused. Fusion smooths the localization stream, at the cost of latency reacting to a genuine pose change. Enabled by default. | | readonly trackables | TrackableCollection | The anchors served by AnchorManager. | | readonly trackablesChanged | UnityEvent> | Invoked when anchors have changed: added, updated, or removed. Forwarded from AnchorManager. | | UniversalLocalizationEnabled | bool | If true, enables cloud-based geopositioning: VPS2 sends camera imagery to the cloud to compute an improved geoposition and heading, beyond what local sensor fusion provides. Requires a network connection but no pre-scanned VPS maps. If false, geopositioning relies on local sensor fusion alone. | | UniversalLocalizationRequestsPerSecond | float | Number of cloud geopositioning requests to send per second while UniversalLocalizationEnabled is true. | | VpsDebuggerEnabled | bool | If true, enable the VPS Debugger, which will log VPS2 related internal events to diagnose VPS2 tracking behavior and issues. | | VpsDebuggerSavingFrameImageEnabled | bool | If true (and VpsDebuggerEnabled), attach a 180x135 JPEG thumbnail of each camera frame submitted with a VPS map localization request to the VPS debugger data, adding roughly 3-5 KB per request. | | VpsMapLocalizationEnabled | bool | If true, localization on VPS maps is enabled. VPS maps only exist in pre-scanned areas. Your device must be localized on a VPS map in order for VPS anchors to be placed with high accuracy. | --- ## Methods | Name | Type | Summary | | --- | --- | --- | | GetSessionId | bool | Gets the session id, if one exists. | | RemoveAnchor | void | Stops tracking an anchor and destroys its trackable. Forwards to RemoveAnchor. | | TryCreateAnchor | bool | Attempts to create a new anchor at localPose, in AR session space. Forwards to TryCreateAnchor. | | TryGetAnchorPayload | bool | Gets the payload which encodes the anchor. Forwards to TryGetAnchorPayload. | | TryGetAssetTrackingData | bool | Attempts to get the pose of a VPS asset's origin, in AR session space. | | TryGetDeviceGeolocation | bool | Attempts to get the geolocation of the device's last known camera pose. | | TryGetLatestLocalization | bool | Attempts to get the latest VPS2 localization, which carries the data required to convert between the AR tracking space and geolocation. | | TryGetPose | bool | Attempts to convert a position and orientation in the global coordinate system to a pose in AR session space, using the supplied localization snapshot. | | TryLocalize | bool | Requests localization to a site, identified by its site ID. | | TryTrackAnchor | bool | Starts tracking the anchor encoded by anchorPayload. Forwards to TryTrackAnchor. | | TryTrackAsset | bool | Requests tracking of a VPS map asset's origin, identified by its asset ID. Forwards to TryTrackAsset. | --- ## Events | Name | Type | Summary | | --- | --- | --- | | DebuggerDataReceived | Action | Invoked for each VPS Debugger event while VpsDebuggerEnabled is true. | | LocalizationRequestRecordAdded | Action | Invoked for each new localization request record: the outcome of a network request or frame submission made by VPS2. | --- ## Relationships derived: ARLocationManager