#pragma once #include #include #include class TiMapProvider; /** * @brief The TiMapUrlEngine class 管理所有服务 * 存放所有地图服务的 字符串及服务类的hash map */ class TiMapUrlEngine : public QObject { Q_OBJECT public: TiMapUrlEngine(QObject* parent = nullptr); typedef QPair ProviderPair; QMap getProviderNameList() const; QString getTypeFromId(const int id) const; int getIdFromType(const QString& type) const; TiMapProvider* getMapProviderFromId(int id) const; TiMapProvider* getMapProviderFromType(const QString& type) const; QNetworkRequest getTileUrl(int id, int x, int y, int zoom, QNetworkAccessManager* networkManager) const; QNetworkRequest getTileUrl(const QString& type, int x, int y, int zoom, QNetworkAccessManager* networkManager) const; QString getImageFormat(QString type, const QByteArray& image); QString getImageFormat(int id, const QByteArray& image); bool isElevation(int mapId); private: QList m_providerList; QMap m_providerNameList; };