AR + GPS Location  3.0.0
All Classes Namespaces Functions Variables Properties Events Pages
ILocationProvider.cs
1 using System;
2 using System.Collections;
3 using UnityEngine;
4 using UnityEngine.Serialization;
5 
6 namespace ARLocation
7 {
8  [Serializable]
10  {
14  [Tooltip("The minimum desired update time, in seconds.")]
15  public float TimeBetweenUpdates = 2.0f;
16 
20  [Tooltip("The minimum distance between consecutive location updates, in meters.")]
21  public double MinDistanceBetweenUpdates = 0;
22 
26  [FormerlySerializedAs("MaxAccuracyRadius")]
27  [Tooltip("The minimum accuracy of accepted location measurements, in meters. " +
28  "Accuracy here means the radius of uncertainty of the device's location, " +
29  "defining a circle where it can possibly be found in.")]
30  public double AccuracyRadius = 25.0f;
31 
32  [Tooltip("The global maximum number of location updates. The updates will be paused after this amount. Zero means there is no limit and " +
33  "the updates won't be paused automatically. Note that this will possibly override the settings from individual components, like 'PlaceAtLocation'.")]
34  public uint MaxNumberOfUpdates;
35  }
36 
37  public enum LocationProviderStatus
38  {
39  Idle,
40  Initializing,
41  Started,
42  Failed
43  }
44 
45  // Location provider delegates/events
46  public delegate void LocationUpdatedDelegate(LocationReading currentLocation, LocationReading lastLocation);
47  public delegate void CompassUpdateDelegate(HeadingReading heading, HeadingReading lastReading);
48  public delegate void LocationEnabledDelegate();
49  public delegate void LocationFailedDelegate(string message);
50 
51  public interface ILocationProvider
52  {
53  string Name { get; }
54 
55  LocationProviderOptions Options { get; set; }
56 
57  LocationReading CurrentLocation { get; }
58  LocationReading CurrentLocationRaw { get; }
59  LocationReading LastLocation { get; }
60  LocationReading LastLocationRaw { get; }
61  LocationReading FirstLocation { get; }
62 
63  HeadingReading CurrentHeading { get; }
64  HeadingReading LastHeading { get; }
65 
66  float StartTime { get; }
67  bool IsCompassEnabled { get; }
68  double DistanceFromStartPoint { get; }
69  bool IsEnabled { get; }
70  bool Paused { get; }
71  int LocationUpdateCount { get; }
72 
73  bool HasStarted { get; }
74 
75  bool ApplyCompassTiltCompensationOnAndroid { get; set; }
76 
77  event LocationUpdatedDelegate LocationUpdated;
78  event LocationUpdatedDelegate LocationUpdatedRaw;
79  event CompassUpdateDelegate CompassUpdated;
80  event LocationEnabledDelegate LocationEnabled;
81  event LocationFailedDelegate LocationFailed;
82 
83  IEnumerator Start(uint maxWaitTime = 10000, uint delay = 0);
84 
85  void ForceLocationUpdate();
86 
87  void Pause();
88  void Resume();
89  void Update();
90 
91  void Restart();
92 
93  void OnEnabled(LocationEnabledDelegate del);
94  void OnFail(LocationFailedDelegate del);
95 
96  void SetCompassLowPassFactor(double factor);
97 
98  string GetInfoString();
99  string GetStatusString();
100  }
101 }
ARLocation.LocationProviderOptions.TimeBetweenUpdates
float TimeBetweenUpdates
The minimum desired update time, in seconds.
Definition: ILocationProvider.cs:15
ARLocation.LocationProviderOptions.MinDistanceBetweenUpdates
double MinDistanceBetweenUpdates
The minimum distance between consecutive location updates, in meters.
Definition: ILocationProvider.cs:21
ARLocation.ILocationProvider
Definition: ILocationProvider.cs:52
ARLocation.LocationProviderOptions
Definition: ILocationProvider.cs:10
ARLocation.HeadingReading
Definition: HeadingReading.cs:5
ARLocation.LocationProviderOptions.AccuracyRadius
double AccuracyRadius
The minimum accuracy of accepted location measurements, in meters.
Definition: ILocationProvider.cs:30
ARLocation.LocationReading
Definition: LocationReading.cs:5
ARLocation
Definition: ARLocationConfigInspector.cs:7