You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PayloadAPP/Src/RescueLoad/map/tianditu/include/timapprovider.h

63 lines
2.2 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**************************************************************************
* 文件名 timapprovider.h
* =======================================================================
* 创 建 者 :田小帆
* 创建日期 2021-6-16
* 邮 箱 499131808@qq.com
* Q Q 499131808
* 公 司
* 功能描述
*
* ======================================================================
* 修改者
* 修改日期
* 修改内容
* ======================================================================
*
***************************************************************************/
#pragma once
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QObject>
#include <private/qgeomaptype_p.h>
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;
};