2018-01-29 00:19:57 +01:00
|
|
|
#ifndef MAPSOURCE_H
|
|
|
|
#define MAPSOURCE_H
|
2018-01-28 22:56:08 +01:00
|
|
|
|
|
|
|
#include <QList>
|
|
|
|
#include "common/range.h"
|
|
|
|
#include "common/rectc.h"
|
2018-09-30 12:16:41 +02:00
|
|
|
#include "common/kv.h"
|
2018-04-01 20:01:25 +02:00
|
|
|
#include "downloader.h"
|
2018-04-05 21:13:48 +02:00
|
|
|
#include "coordinatesystem.h"
|
2018-01-28 22:56:08 +01:00
|
|
|
|
|
|
|
class Map;
|
|
|
|
class QXmlStreamReader;
|
|
|
|
|
2018-01-29 00:19:57 +01:00
|
|
|
class MapSource
|
2018-01-28 22:56:08 +01:00
|
|
|
{
|
|
|
|
public:
|
2018-05-22 22:40:15 +02:00
|
|
|
static Map *loadMap(const QString &path, QString &errorString);
|
2020-02-09 23:24:48 +01:00
|
|
|
static bool isMap(const QString &path);
|
2018-01-28 22:56:08 +01:00
|
|
|
|
|
|
|
private:
|
2018-02-27 01:02:22 +01:00
|
|
|
enum Type {
|
2018-04-08 17:48:13 +02:00
|
|
|
OSM,
|
2018-03-30 10:25:05 +02:00
|
|
|
WMTS,
|
2018-09-22 13:32:54 +02:00
|
|
|
WMS,
|
2019-05-20 23:23:24 +02:00
|
|
|
TMS,
|
|
|
|
QuadTiles
|
2018-02-27 01:02:22 +01:00
|
|
|
};
|
|
|
|
|
2018-03-30 10:25:05 +02:00
|
|
|
struct Config {
|
|
|
|
Type type;
|
|
|
|
QString name;
|
|
|
|
QString url;
|
2018-02-27 01:02:22 +01:00
|
|
|
Range zooms;
|
|
|
|
RectC bounds;
|
|
|
|
QString layer;
|
|
|
|
QString style;
|
|
|
|
QString set;
|
|
|
|
QString format;
|
2018-03-30 10:25:05 +02:00
|
|
|
QString crs;
|
2018-04-07 18:42:25 +02:00
|
|
|
CoordinateSystem coordinateSystem;
|
2018-02-27 01:02:22 +01:00
|
|
|
bool rest;
|
2019-08-01 08:36:58 +02:00
|
|
|
QList<KV<QString, QString> > dimensions;
|
2018-04-01 20:01:25 +02:00
|
|
|
Authorization authorization;
|
2018-08-18 21:06:36 +02:00
|
|
|
qreal tileRatio;
|
2018-11-17 10:10:35 +01:00
|
|
|
int tileSize;
|
2018-11-15 00:38:03 +01:00
|
|
|
bool scalable;
|
2018-02-27 01:02:22 +01:00
|
|
|
|
2018-03-30 10:25:05 +02:00
|
|
|
Config();
|
2018-02-27 01:02:22 +01:00
|
|
|
};
|
|
|
|
|
2018-05-22 22:40:15 +02:00
|
|
|
static RectC bounds(QXmlStreamReader &reader);
|
|
|
|
static Range zooms(QXmlStreamReader &reader);
|
|
|
|
static void map(QXmlStreamReader &reader, Config &config);
|
2018-12-08 02:27:27 +01:00
|
|
|
static void tile(QXmlStreamReader &reader, Config &config);
|
2018-01-28 22:56:08 +01:00
|
|
|
};
|
|
|
|
|
2018-01-29 00:19:57 +01:00
|
|
|
#endif // MAPSOURCE_H
|