NDEVR
API Documentation
OpenElevationService

An ElevationService implementation that queries the Open Elevation API for terrain heights. More...

Inheritance diagram for OpenElevationService:
[legend]
Collaboration diagram for OpenElevationService:
[legend]

Public Member Functions

 OpenElevationService ()
 Constructs an OpenElevationService.
QNetworkRequest createRequest (UUID id, const String &url) const
 Creates a single HTTP request with the given URL.
virtual Buffer< QNetworkRequest > createURLRequests (const ElevationRequest &request)
 Creates the HTTP URL requests needed to fulfill an elevation request.
virtual void postRequest (const ElevationRequest &request) override
 Submits an elevation request for asynchronous processing.
void startRequest (ElevationRequest request)
 Begins sending the network requests for an elevation query.

Static Public Member Functions

static void Initialize ()
 Registers this service as an available elevation provider.
Static Public Member Functions inherited from ElevationService
static ElevationRequest ConvertToLatLon (const ElevationRequest &request)
 Converts the coordinate locations in the given request to latitude/longitude values.
static ElevationServicePrimaryService ()
 Returns the primary ElevationService instance registered for the application.
static void SetPrimaryService (ElevationService *elevation_service)
 Sets the primary ElevationService instance for the application.
static Buffer< LineElevationRequestSplitRequestsIfNeeded (const Buffer< LineElevationRequest > &requests, uint04 max_samples)
 Splits polyline elevation requests that exceed the maximum sample count into smaller sub-requests.

Protected Member Functions

void createManager ()
 Creates the QNetworkAccessManager if not already created.
void onFinished ()
 Called when all network requests for a query have completed.
void processReply (QNetworkReply *reply)
 Processes a completed network reply and extracts elevation data.

Protected Attributes

Time m_last_send_time
 Timestamp of the last sent request for rate limiting.
TimeSpan m_max_querry_time
 Maximum allowed time for a query before timeout.
QNetworkAccessManager * m_network_manager
 The network access manager for HTTP requests.
Dictionary< UUID, ProgressInfo * > m_pending_progress
 Progress trackers for pending requests.
Dictionary< UUID, Buffer< QNetworkRequest > > m_pending_queries
 Queued network requests by request UUID.
Dictionary< UUID, ElevationRequest * > m_pending_requests
 Pending elevation requests keyed by UUID.

Additional Inherited Members

Static Protected Attributes inherited from ElevationService
static ElevationServices_primary_service
 The singleton primary elevation service instance.

Detailed Description

An ElevationService implementation that queries the Open Elevation API for terrain heights.


Definition at line 16 of file OpenElevationService.h.

Member Function Documentation

◆ createRequest()

QNetworkRequest OpenElevationService::createRequest ( UUID id,
const String & url ) const

Creates a single HTTP request with the given URL.

Parameters
[in]idThe request identifier UUID.
[in]urlThe URL string to query.
Returns
The configured QNetworkRequest.

◆ createURLRequests()

virtual Buffer< QNetworkRequest > OpenElevationService::createURLRequests ( const ElevationRequest & request)
virtual

Creates the HTTP URL requests needed to fulfill an elevation request.

Parameters
[in]requestThe elevation request.
Returns
A buffer of QNetworkRequest objects.

◆ postRequest()

virtual void OpenElevationService::postRequest ( const ElevationRequest & request)
overridevirtual

Submits an elevation request for asynchronous processing.

Parameters
[in]requestThe elevation request to process.

Implements ElevationService.

◆ processReply()

void OpenElevationService::processReply ( QNetworkReply * reply)
protected

Processes a completed network reply and extracts elevation data.

Parameters
[in]replyThe network reply to process.

◆ startRequest()

void OpenElevationService::startRequest ( ElevationRequest request)

Begins sending the network requests for an elevation query.

Parameters
[in]requestThe elevation request to start.

The documentation for this class was generated from the following file: