5#include <QtCore/QtMinMax>
20#ifndef QGC_NO_GOOGLE_MAPS
21 std::make_shared<GoogleStreetMapProvider>(),
22 std::make_shared<GoogleSatelliteMapProvider>(),
23 std::make_shared<GoogleTerrainMapProvider>(),
24 std::make_shared<GoogleHybridMapProvider>(),
25 std::make_shared<GoogleLabelsMapProvider>(),
27 std::make_shared<BingRoadMapProvider>(),
28 std::make_shared<BingSatelliteMapProvider>(),
29 std::make_shared<BingHybridMapProvider>(),
31 std::make_shared<TianDiTuRoadProvider>(),
32 std::make_shared<TianDiTuSatelliteProvider>(),
33 std::make_shared<StatkartTopoMapProvider>(),
34 std::make_shared<StatkartBaseMapProvider>(),
35 std::make_shared<SvalbardMapProvider>(),
37 std::make_shared<EniroMapProvider>(),
39 std::make_shared<EsriWorldStreetMapProvider>(),
40 std::make_shared<EsriWorldSatelliteMapProvider>(),
41 std::make_shared<EsriTerrainMapProvider>(),
43 std::make_shared<MapboxStreetMapProvider>(),
44 std::make_shared<MapboxLightMapProvider>(),
45 std::make_shared<MapboxDarkMapProvider>(),
46 std::make_shared<MapboxSatelliteMapProvider>(),
47 std::make_shared<MapboxHybridMapProvider>(),
48 std::make_shared<MapboxStreetsBasicMapProvider>(),
49 std::make_shared<MapboxOutdoorsMapProvider>(),
50 std::make_shared<MapboxBrightMapProvider>(),
51 std::make_shared<MapboxCustomMapProvider>(),
53 std::make_shared<MapQuestMapMapProvider>(),
54 std::make_shared<MapQuestSatMapProvider>(),
56 std::make_shared<VWorldStreetMapProvider>(),
57 std::make_shared<VWorldSatMapProvider>(),
59 std::make_shared<JapanStdMapProvider>(),
60 std::make_shared<JapanSeamlessMapProvider>(),
61 std::make_shared<JapanAnaglyphMapProvider>(),
62 std::make_shared<JapanSlopeMapProvider>(),
63 std::make_shared<JapanReliefMapProvider>(),
65 std::make_shared<LINZBasemapMapProvider>(),
67 std::make_shared<OpenStreetMapProvider>(),
69 std::make_shared<OpenAIPMapProvider>(),
71 std::make_shared<CustomURLMapProvider>(),
73 std::make_shared<CopernicusElevationProvider>()
80 return provider->getImageFormat(image);
90 return provider->getImageFormat(image);
100 return provider->getTileURL(x, y, zoom);
110 return provider->getTileURL(x, y, zoom);
120 return provider->getAverageSize();
130 return provider->isElevationProvider();
140 return provider->long2tileX(lon, z);
150 return provider->lat2tileY(lat, z);
162 return provider->getTileCount(zoom, topleftLon, topleftLat, bottomRightLon, bottomRightLat);
175 if (provider->getMapId() == qtMapId) {
176 return provider->getMapName();
180 qCWarning(QGCMapUrlEngineLog) <<
"map id not found:" << qtMapId;
191 if (provider->getMapId() == qtMapId) {
196 qCWarning(QGCMapUrlEngineLog) <<
"provider not found from id:" << qtMapId;
202 if (type.isEmpty()) {
207 if (provider->getMapName() == type) {
212 qCWarning(QGCMapUrlEngineLog) <<
"type not found:" << type;
218 if (type.isEmpty()) {
223 if (provider->getMapName() == type) {
224 return provider->getMapId();
228 qCWarning(QGCMapUrlEngineLog) <<
"type not found:" << type;
236 if (provider->isElevationProvider()) {
237 types.append(provider->getMapName());
248 types.append(provider->getMapName());
257 const QString mapName = provider->getMapName();
263 qCWarning(QGCMapUrlEngineLog) <<
"provider not found from hash:" << hash;
270 if (provider->getMapName() == type) {
271 return provider->getMapId();
275 qCWarning(QGCMapUrlEngineLog) <<
"provider not found for type:" << type;
281 const int providerHash = tileHash.mid(0,10).toInt();
288 return QString::asprintf(
"%010d%08d%08d%03d", hash, x, y, z);
static constexpr const quint32 QGC_AVERAGE_TILE_SIZE
#define QGC_LOGGING_CATEGORY(name, categoryStr)
std::shared_ptr< const MapProvider > SharedMapProvider
static QUrl getTileURL(QStringView type, int x, int y, int zoom)
static QString getTileHash(QStringView type, int x, int y, int z)
static QStringList getProviderTypes()
static QGCTileSet getTileCount(int zoom, double topleftLon, double topleftLat, double bottomRightLon, double bottomRightLat, QStringView mapType)
static bool isElevation(int qtMapId)
static QString getProviderTypeFromQtMapId(int qtMapId)
static QString getImageFormat(QStringView type, QByteArrayView image)
static int lat2tileY(QStringView mapType, double lat, int z)
static QStringList getElevationProviderTypes()
static int hashFromProviderType(QStringView type)
static QString tileHashToType(QStringView tileHash)
static int long2tileX(QStringView mapType, double lon, int z)
static QString providerTypeFromHash(int hash)
static quint32 averageSizeForType(QStringView type)
static int getQtMapIdFromProviderType(QStringView type)
static std::shared_ptr< const MapProvider > getMapProviderFromProviderType(QStringView type)
static std::shared_ptr< const MapProvider > getMapProviderFromQtMapId(int qtMapId)