Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
geomapsource.cpp
Go to the documentation of this file.
1// Copyright (C) 2013-2018 Esri <contracts@esri.com>
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "geomapsource.h"
5
6#include <QUrl>
7
9
10static const QString kArcGISTileScheme(QStringLiteral("/tile/${z}/${y}/${x}"));
11
17
18static const MapStyleData mapStyles[] =
19{
20 { QStringLiteral("StreetMap"), QGeoMapType::StreetMap },
21 { QStringLiteral("SatelliteMapDay"), QGeoMapType::SatelliteMapDay },
22 { QStringLiteral("SatelliteMapNight"), QGeoMapType::SatelliteMapNight },
23 { QStringLiteral("TerrainMap"), QGeoMapType::TerrainMap },
24 { QStringLiteral("HybridMap"), QGeoMapType::HybridMap },
25 { QStringLiteral("TransitMap"), QGeoMapType::TransitMap },
26 { QStringLiteral("GrayStreetMap"), QGeoMapType::GrayStreetMap },
27 { QStringLiteral("PedestrianMap"), QGeoMapType::PedestrianMap },
28 { QStringLiteral("CarNavigationMap"), QGeoMapType::CarNavigationMap },
29 { QStringLiteral("CustomMap"), QGeoMapType::CustomMap }
30};
31
32GeoMapSource::GeoMapSource(QGeoMapType::MapStyle style, const QString &name,
33 const QString &description, bool mobile, bool night, int mapId,
34 const QString &url, const QString &copyright, const QGeoCameraCapabilities &cameraCapabilities) :
35 QGeoMapType(style, name, description, mobile, night, mapId, "esri", cameraCapabilities),
36 m_url(url), m_copyright(copyright)
37{
38}
39
40QString GeoMapSource::toFormat(const QString &url)
41{
42 QString format = url;
43
44 if (!format.contains(QLatin1String("${")))
45 format += kArcGISTileScheme;
46
47 format.replace(QLatin1String("${z}"), QLatin1String("%1"));
48 format.replace(QLatin1String("${x}"), QLatin1String("%2"));
49 format.replace(QLatin1String("${y}"), QLatin1String("%3"));
50 format.replace(QLatin1String("${token}"), QLatin1String("%4"));
51
52 return format;
53}
54
55QGeoMapType::MapStyle GeoMapSource::mapStyle(const QString &styleString)
56{
57 for (const MapStyleData &mapStyle : mapStyles) {
58 if (styleString.compare(mapStyle.name, Qt::CaseInsensitive) == 0)
59 return mapStyle.style;
60 }
61
62 QGeoMapType::MapStyle style = static_cast<QGeoMapType::MapStyle>(styleString.toInt());
63 if (style <= QGeoMapType::NoMap)
64 style = QGeoMapType::CustomMap;
65
66 return style;
67}
68
69QT_END_NAMESPACE
static QT_BEGIN_NAMESPACE const QString kArcGISTileScheme(QStringLiteral("/tile/${z}/${y}/${x}"))
static const MapStyleData mapStyles[]
QGeoMapType::MapStyle style