QGIS/python/analysis/openstreetmap/qgsosmdownload.sip
Nyall Dawson 881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +11:00

66 lines
2.2 KiB
Plaintext

/**
* @brief OSMDownload is a utility class for downloading OpenStreetMap via Overpass API.
*
* To use this class, it is necessary to set query, output file name and start the request.
* The interface is asynchronous, the caller has to wait for finished() signal that is
* emitted whe the request has finished (successfully or with an error).
*
* To check whether the the request has been successful, check hasError() and use errorString()
* to retreive error message. An error may happen either directly in start() method
* or during the network communication.
*
* By default OSMDownload uses remote service at location returned by defaultServiceUrl() method.
*/
class QgsOSMDownload : QObject
{
%TypeHeaderCode
#include <qgsosmdownload.h>
%End
public:
//! Return URL of the service that is used by default
static QString defaultServiceUrl();
//! Create query (in Overpass Query Language) that fetches everything in given rectangle
static QString queryFromRect( const QgsRectangle& rect );
QgsOSMDownload();
~QgsOSMDownload();
void setServiceUrl( const QString& serviceUrl );
QString serviceUrl() const;
void setQuery( const QString& query );
QString query() const;
void setOutputFileName( const QString& outputFileName );
QString outputFileName() const;
bool hasError() const;
QString errorString() const;
/**
* @brief Starts network request for data. The prerequisite is that the query string and output
* file name have been set.
*
* Only one request may be pending at one point - if you need more requests at once, use several instances.
*
* @return true if the network request has been issued, false otherwise (and sets error string)
*/
bool start();
/**
* @brief Aborts current pending request
* @return true if there is a pending request and has been aborted, false otherwise
*/
bool abort();
//! Returns true if the request has already finished
bool isFinished() const;
signals:
void finished(); //!< emitted when the network reply has finished (with success or with an error)
void downloadProgress( qint64, qint64 ); //!< normally the total length is not known (until we reach end)
};