/************************************************************************** * 文件名 :timapprovider.h * ======================================================================= * 创 建 者 :田小帆 * 创建日期 :2021-6-16 * 邮 箱 :499131808@qq.com * Q Q :499131808 * 公 司 : * 功能描述 : * * ====================================================================== * 修改者 : * 修改日期 : * 修改内容 : * ====================================================================== * ***************************************************************************/ #pragma once #include #include #include #include class TiMapProvider : public QObject { Q_OBJECT public: TiMapProvider(const QString& imageFormat, const quint32 averageSize, const QGeoMapType::MapStyle mapType = QGeoMapType::CustomMap, QObject* parent = nullptr); /** * @brief getTileURL * @return 返回值有可能为空,在使用时需进行判断 */ virtual QNetworkRequest getTileURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager); virtual void setToken(const QString& token) { Q_UNUSED(token) } virtual bool isElevationProvider() const { return false; } virtual bool isBingProvider() const { return false; } QGeoMapType::MapStyle getMapStyle() const { return m_mapType; } QString getImageFormat(const QByteArray& image) const; enum { AVERAGE_TILE_SIZE = 13652 }; protected: virtual QString getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) = 0; QString tileXYToQuadKey(const int tileX, const int tileY, const int levelOfDetail) const; int getServerNum(const int x, const int y, const int max) const; protected: QGeoMapType::MapStyle m_mapType; QString m_referrer; QString m_imageFormat; quint32 m_averageSize; QByteArray m_userAgent; QString m_language; };