Overview
Category adding Geospatial functionality to GARSession
.
Instance Method Summary | |
(BOOL) | - isGeospatialModeSupported: |
Determines whether the given geospatial mode is supported on the current device and OS version. More... | |
(nullable GARAnchor *) | - createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error: |
Creates a Geospatial anchor at the specified geodetic location and orientation relative to the Earth. More... | |
Method Detail
- (BOOL) isGeospatialModeSupported: | (GARGeospatialMode) | geospatialMode |
Determines whether the given geospatial mode is supported on the current device and OS version.
If this returns NO, then configuring the session with the given geospatial mode will fail with the error code GARSessionErrorCodeConfigurationNotSupported
. A device may be incompatible with a given mode due to insufficient sensor capabilities.
- Parameters
-
geospatialMode The geospatial mode.
- Returns
- YES if the
geospatialMode
is supported, NO otherwise.
Extends class GARSession.
- (nullable GARAnchor *) createAnchorWithCoordinate: | (CLLocationCoordinate2D) | coordinate | |
altitude: | (CLLocationDistance) | altitude | |
eastUpSouthQAnchor: | (simd_quatf) | eastUpSouthQAnchor | |
error: | (NSError **) | error | |
Creates a Geospatial anchor at the specified geodetic location and orientation relative to the Earth.
Latitude and longitude are defined by the WGS84 specification, and altitude values are defined as the elevation above the WGS84 ellipsoid in meters.
The rotation provided by eastUpSouthQAnchor
is a rotation with respect to an east-up-south 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 south.
To create an anchor that has the +Z axis pointing in the same direction as heading obtained from GARGeospatialTransform
, use the following formula:
An anchor's GARAnchor.trackingState
will be GARTrackingStatePaused
while GAREarth
is GARTrackingStatePaused
. The tracking state will permanently become GARTrackingStateStopped
if the GARSession
configuration is set to GARGeospatialModeDisabled
.
Creating anchors near the north pole or south pole is not supported. If the latitude is within 0.1° of the north pole or south pole (90° or -90 °), this function will output GARSessionErrorCodeInvalidArgument
and the anchor will fail to be created.
- Parameters
-
coordinate The latitude and longitude associated with the location, specified using the WGS84 reference frame. This must not be within .1° of the North or South pole (i.e. +- 90°). altitude Altitude in reference to the WGS 84 ellipsoid, in meters. Positive values indicate altitudes above approximate sea level. Negative values indicate altitudes below approximate sea level. eastUpSouthQAnchor Represents the quaternion from the anchor to East-Up-South (EUS) coordinates (i.e., +X points East, +Y points up, and +Z points South). error Out param for an NSError
. Possible error codes: GARSessionErrorCodeIllegalState - current geospatial mode is disabled. GARSessionErrorCodeInvalidArgument - latitude is not within range.
- Returns
- The new anchor, or
nil
if there was an error.
Extends class GARSession.