26 QString QgsWriteVectorTilesBaseAlgorithm::group()
const
28 return QObject::tr(
"Vector tiles" );
31 QString QgsWriteVectorTilesBaseAlgorithm::groupId()
const
33 return QStringLiteral(
"vectortiles" );
36 QString QgsWriteVectorTilesBaseAlgorithm::shortHelpString()
const
38 return QObject::tr(
"This algorithm exports one or more vector layers to vector tiles - a data format optimized for fast map rendering and small data size." );
41 void QgsWriteVectorTilesBaseAlgorithm::addBaseParameters()
54 int minZoom = parameterAsInt( parameters, QStringLiteral(
"MIN_ZOOM" ), context );
55 int maxZoom = parameterAsInt( parameters, QStringLiteral(
"MAX_ZOOM" ), context );
57 QVariant layersVariant = parameters.value( parameterDefinition( QStringLiteral(
"LAYERS" ) )->name() );
68 prepareWriter( writer, parameters, context, outputs );
75 if ( parameters.contains( QStringLiteral(
"EXTENT" ) ) )
93 QString QgsWriteVectorTilesXyzAlgorithm::name()
const
95 return QStringLiteral(
"writevectortiles_xyz" );
98 QString QgsWriteVectorTilesXyzAlgorithm::displayName()
const
100 return QObject::tr(
"Write Vector Tiles (XYZ)" );
105 return new QgsWriteVectorTilesXyzAlgorithm();
108 void QgsWriteVectorTilesXyzAlgorithm::initAlgorithm(
const QVariantMap & )
111 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"XYZ_TEMPLATE" ), QObject::tr(
"File template" ), QStringLiteral(
"{z}/{x}/{y}.pbf" ) ) );
118 QString outputDir = parameterAsString( parameters, QStringLiteral(
"OUTPUT_DIRECTORY" ), context );
119 QString xyzTemplate = parameterAsString( parameters, QStringLiteral(
"XYZ_TEMPLATE" ), context );
121 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"xyz" ) );
122 dsUri.
setParam( QStringLiteral(
"url" ), QUrl::fromLocalFile( outputDir +
"/" + xyzTemplate ).toString() );
127 outputs.insert( QStringLiteral(
"OUTPUT_DIRECTORY" ), outputDir );
134 QString QgsWriteVectorTilesMbtilesAlgorithm::name()
const
136 return QStringLiteral(
"writevectortiles_mbtiles" );
139 QString QgsWriteVectorTilesMbtilesAlgorithm::displayName()
const
141 return QObject::tr(
"Write Vector Tiles (MBTiles)" );
146 return new QgsWriteVectorTilesMbtilesAlgorithm();
149 void QgsWriteVectorTilesMbtilesAlgorithm::initAlgorithm(
const QVariantMap & )
156 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_NAME" ), QObject::tr(
"Metadata: Name" ), QVariant(),
false,
true ) );
157 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_DESCRIPTION" ), QObject::tr(
"Metadata: Description" ), QVariant(),
false,
true ) );
158 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_ATTRIBUTION" ), QObject::tr(
"Metadata: Attribution" ), QVariant(),
false,
true ) );
159 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_VERSION" ), QObject::tr(
"Metadata: Version" ), QVariant(),
false,
true ) );
160 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_TYPE" ), QObject::tr(
"Metadata: Type" ), QVariant(),
false,
true ) );
161 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_CENTER" ), QObject::tr(
"Metadata: Center" ), QVariant(),
false,
true ) );
166 QString outputFile = parameterAsFileOutput( parameters, QStringLiteral(
"OUTPUT" ), context );
168 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"mbtiles" ) );
169 dsUri.
setParam( QStringLiteral(
"url" ), outputFile );
174 QString metaName = parameterAsString( parameters, QStringLiteral(
"META_NAME" ), context );
175 QString metaDesciption = parameterAsString( parameters, QStringLiteral(
"META_DESCRIPTION" ), context );
176 QString metaAttribution = parameterAsString( parameters, QStringLiteral(
"META_ATTRIBUTION" ), context );
177 QString metaVersion = parameterAsString( parameters, QStringLiteral(
"META_VERSION" ), context );
178 QString metaType = parameterAsString( parameters, QStringLiteral(
"META_TYPE" ), context );
179 QString metaCenter = parameterAsString( parameters, QStringLiteral(
"META_CENTER" ), context );
182 if ( !metaName.isEmpty() )
183 meta[
"name"] = metaName;
184 if ( !metaDesciption.isEmpty() )
185 meta[
"description"] = metaDesciption;
186 if ( !metaAttribution.isEmpty() )
187 meta[
"attribution"] = metaAttribution;
188 if ( !metaVersion.isEmpty() )
189 meta[
"version"] = metaVersion;
190 if ( !metaType.isEmpty() )
191 meta[
"type"] = metaType;
192 if ( !metaCenter.isEmpty() )
193 meta[
"center"] = metaCenter;
197 outputs.insert( QStringLiteral(
"OUTPUT" ), outputFile );
This class represents a coordinate reference system (CRS).
Class for storing the component parts of a RDBMS data source URI (e.g.
QByteArray encodedUri() const
Returns the complete encoded URI as a byte array.
void setParam(const QString &key, const QString &value)
Sets a generic parameter value on the URI.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
QgsCoordinateTransformContext transformContext() const
Returns the coordinate transform context.
Custom exception class for processing related exceptions.
Base class for providing feedback from a processing algorithm.
A rectangular map extent parameter for processing algorithms.
A generic file based destination parameter, for specifying the destination path for a file (non-map l...
A folder destination parameter, for specifying the destination path for a folder created by the algor...
A numeric parameter for processing algorithms.
A string parameter for processing algorithms.
A parameter for processing algorithms that need a list of input vector layers for writing of vector t...
static QList< QgsVectorTileWriter::Layer > parameterAsLayers(const QVariant &layersVariant, QgsProcessingContext &context)
Converts a QVariant value (a QVariantList) to a list of input layers.
A rectangle specified with double values.
Configuration of a single input vector layer to be included in the output.
Takes care of writing vector tiles.
QString errorMessage() const
Returns error message related to the previous call to writeTiles().
void setMaxZoom(int maxZoom)
Sets the maximum zoom level of tiles. Allowed values are in interval [0,24].
void setDestinationUri(const QString &uri)
Sets where and how the vector tiles will be written.
void setTransformContext(const QgsCoordinateTransformContext &transformContext)
Sets coordinate transform context for transforms between layers and tile matrix CRS.
void setExtent(const QgsRectangle &extent)
Sets extent of vector tile output.
bool writeTiles(QgsFeedback *feedback=nullptr)
Writes vector tiles according to the configuration.
void setLayers(const QList< QgsVectorTileWriter::Layer > &layers)
Sets vector layers and their configuration for output of vector tiles.
void setMinZoom(int minZoom)
Sets the minimum zoom level of tiles. Allowed values are in interval [0,24].
void setMetadata(const QVariantMap &metadata)
Sets that will be written to the output dataset. See class description for more on metadata support.