A location data source that uses a route tracker and a generic location data source to output locations snapped to a route. More...
Header: | #include <RouteTrackerLocationDataSource.h> |
Since: | Esri::ArcGISRuntime 100.9 |
Inherits: | Esri::ArcGISRuntime::AbstractLocationDataSource |
Public Functions
RouteTrackerLocationDataSource(Esri::ArcGISRuntime::RouteTracker *routeTracker, QObject *parent = nullptr) | |
RouteTrackerLocationDataSource(Esri::ArcGISRuntime::RouteTracker *routeTracker, Esri::ArcGISRuntime::AbstractLocationDataSource *locationDataSource, QObject *parent = nullptr) | |
virtual | ~RouteTrackerLocationDataSource() override |
Protected Slots
Detailed Description
Setting the RouteTrackerLocationDataSource is optional when desiring to have the location display symbol navigate along a route. Using this object provides the benefit of having the current location snapped to the route polyline during navigation. If the RouteTrackerLocationDataSource is not used, you may notice that the actual GPS location tends to wander off the route polyline due to the accuracy provided by the GPS unit.
No distance tolerance needs to be specified to enable the snapping effect of having the location display symbol follow along the route polyline. An internal algorithm is used by the RouteTrackerLocationDataSource to determine if location is 'on route' or 'off route'. If the location is seen as 'on route' then snapping will occur, otherwise the output location will be the original input GPS location. If it is determined that the tracking along the route is no longer needed the RouteTrackerLocationDataSource's stop method can be called or the LocationDisplay can be reset to a different data source.
To provide some insight on how the RouteTrackerLocationDataSource works, the data source will pass the locations from the AbstractLocationDataSource::locationChanged(const Esri::ArcGISRuntime::Location&) event to the RouteTracker::trackLocationAsync(const Esri::ArcGISRuntime::Location&). The TrackingStatus::displayLocation will then be returned in this data source's locationChanged event.
To control the orientation of the location display symbol as it navigates along a route refer to the MapView::locationDisplay class.
Member Function Documentation
[explicit]
RouteTrackerLocationDataSource::RouteTrackerLocationDataSource (Esri::ArcGISRuntime::RouteTracker *routeTracker , QObject *parent = nullptr)
Creates a RouteTrackerLocationDataSource object using the passed in RouteTracker and the platform's default location data source.
- routeTracker - A RouteTracker object.
- parent - The optional parent QObject.
RouteTrackerLocationDataSource::RouteTrackerLocationDataSource (Esri::ArcGISRuntime::RouteTracker *routeTracker , Esri::ArcGISRuntime::AbstractLocationDataSource *locationDataSource , QObject *parent = nullptr)
Creates a RouteTrackerLocationDataSource object.
- routeTracker - A RouteTracker object.
- locationDataSource - An AbstractLocationDataSource object.
- parent - The optional parent QObject.
[override virtual]
RouteTrackerLocationDataSource::~RouteTrackerLocationDataSource ()
Destructor.
[override virtual protected slot]
void RouteTrackerLocationDataSource::onStart ()
Reimplements: AbstractLocationDataSource::onStart().
Reacts to start requests by starting the location tracking.
Note: You should not call this method directly - use start instead.
[override virtual protected slot]
void RouteTrackerLocationDataSource::onStop ()
Reimplements: AbstractLocationDataSource::onStop().
Reacts to stop requests by stopping the location tracking.
Note: You should not call this method directly - use stop instead.