3#include <QtCore/QtMinMax>
17#ifndef QGC_NO_GOOGLE_MAPS
18 std::make_shared<GoogleStreetMapProvider>(),
19 std::make_shared<GoogleSatelliteMapProvider>(),
20 std::make_shared<GoogleTerrainMapProvider>(),
21 std::make_shared<GoogleHybridMapProvider>(),
22 std::make_shared<GoogleLabelsMapProvider>(),
24 std::make_shared<BingRoadMapProvider>(),
25 std::make_shared<BingSatelliteMapProvider>(),
26 std::make_shared<BingHybridMapProvider>(),
28 std::make_shared<TianDiTuRoadProvider>(),
29 std::make_shared<TianDiTuSatelliteProvider>(),
30 std::make_shared<StatkartTopoMapProvider>(),
31 std::make_shared<StatkartBaseMapProvider>(),
32 std::make_shared<SvalbardMapProvider>(),
34 std::make_shared<EniroMapProvider>(),
36 std::make_shared<EsriWorldStreetMapProvider>(),
37 std::make_shared<EsriWorldSatelliteMapProvider>(),
38 std::make_shared<EsriTerrainMapProvider>(),
40 std::make_shared<MapboxStreetMapProvider>(),
41 std::make_shared<MapboxLightMapProvider>(),
42 std::make_shared<MapboxDarkMapProvider>(),
43 std::make_shared<MapboxSatelliteMapProvider>(),
44 std::make_shared<MapboxHybridMapProvider>(),
45 std::make_shared<MapboxStreetsBasicMapProvider>(),
46 std::make_shared<MapboxOutdoorsMapProvider>(),
47 std::make_shared<MapboxBrightMapProvider>(),
48 std::make_shared<MapboxCustomMapProvider>(),
50 std::make_shared<MapQuestMapMapProvider>(),
51 std::make_shared<MapQuestSatMapProvider>(),
53 std::make_shared<VWorldStreetMapProvider>(),
54 std::make_shared<VWorldSatMapProvider>(),
56 std::make_shared<JapanStdMapProvider>(),
57 std::make_shared<JapanSeamlessMapProvider>(),
58 std::make_shared<JapanAnaglyphMapProvider>(),
59 std::make_shared<JapanSlopeMapProvider>(),
60 std::make_shared<JapanReliefMapProvider>(),
62 std::make_shared<LINZBasemapMapProvider>(),
64 std::make_shared<OpenStreetMapProvider>(),
66 std::make_shared<OpenAIPMapProvider>(),
68 std::make_shared<CustomURLMapProvider>(),
70 std::make_shared<CopernicusElevationProvider>()
77 return provider->getImageFormat(image);
87 return provider->getImageFormat(image);
97 return provider->getTileURL(x, y, zoom);
107 return provider->getTileURL(x, y, zoom);
117 return provider->getAverageSize();
127 return provider->isElevationProvider();
137 return provider->long2tileX(lon, z);
147 return provider->lat2tileY(lat, z);
159 return provider->getTileCount(zoom, topleftLon, topleftLat, bottomRightLon, bottomRightLat);
172 if (provider->getMapId() == qtMapId) {
173 return provider->getMapName();
177 qCWarning(QGCMapUrlEngineLog) <<
"map id not found:" << qtMapId;
188 if (provider->getMapId() == qtMapId) {
193 qCWarning(QGCMapUrlEngineLog) <<
"provider not found from id:" << qtMapId;
199 if (type.isEmpty()) {
204 if (provider->getMapName() == type) {
209 qCWarning(QGCMapUrlEngineLog) <<
"type not found:" << type;
215 if (type.isEmpty()) {
220 if (provider->getMapName() == type) {
221 return provider->getMapId();
225 qCWarning(QGCMapUrlEngineLog) <<
"type not found:" << type;
233 if (provider->isElevationProvider()) {
234 types.append(provider->getMapName());
245 types.append(provider->getMapName());
254 const QString mapName = provider->getMapName();
260 qCWarning(QGCMapUrlEngineLog) <<
"provider not found from hash:" << hash;
267 if (provider->getMapName() == type) {
268 return provider->getMapId();
272 qCWarning(QGCMapUrlEngineLog) <<
"provider not found for type:" << type;
278 const int providerHash = tileHash.mid(0,10).toInt();
285 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)