27QString QgsWriteVectorTilesBaseAlgorithm::group()
const
29 return QObject::tr(
"Vector tiles" );
32QString QgsWriteVectorTilesBaseAlgorithm::groupId()
const
34 return QStringLiteral(
"vectortiles" );
37QString QgsWriteVectorTilesBaseAlgorithm::shortHelpString()
const
39 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." );
42QString QgsWriteVectorTilesBaseAlgorithm::shortDescription()
const
44 return QObject::tr(
"Exports one or more vector layers to vector tiles." );
47void QgsWriteVectorTilesBaseAlgorithm::addBaseParameters()
60 const int minZoom = parameterAsInt( parameters, QStringLiteral(
"MIN_ZOOM" ), context );
61 const int maxZoom = parameterAsInt( parameters, QStringLiteral(
"MAX_ZOOM" ), context );
63 const QVariant layersVariant = parameters.value( parameterDefinition( QStringLiteral(
"LAYERS" ) )->name() );
74 prepareWriter( writer, parameters, context, outputs );
81 if ( parameters.contains( QStringLiteral(
"EXTENT" ) ) )
87 const bool res = writer.
writeTiles( feedback );
99QString QgsWriteVectorTilesXyzAlgorithm::name()
const
101 return QStringLiteral(
"writevectortiles_xyz" );
104QString QgsWriteVectorTilesXyzAlgorithm::displayName()
const
106 return QObject::tr(
"Write Vector Tiles (XYZ)" );
109QStringList QgsWriteVectorTilesXyzAlgorithm::tags()
const
111 return QObject::tr(
"xyz,vector,tiles" ).split(
',' );
116 return new QgsWriteVectorTilesXyzAlgorithm();
119void QgsWriteVectorTilesXyzAlgorithm::initAlgorithm(
const QVariantMap & )
122 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"XYZ_TEMPLATE" ), QObject::tr(
"File template" ), QStringLiteral(
"{z}/{x}/{y}.pbf" ) ) );
129 const QString outputDir = parameterAsString( parameters, QStringLiteral(
"OUTPUT_DIRECTORY" ), context );
130 const QString xyzTemplate = parameterAsString( parameters, QStringLiteral(
"XYZ_TEMPLATE" ), context );
132 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"xyz" ) );
133 dsUri.
setParam( QStringLiteral(
"url" ), QUrl::fromLocalFile( outputDir +
"/" + xyzTemplate ).toString() );
138 outputs.insert( QStringLiteral(
"OUTPUT_DIRECTORY" ), outputDir );
145QString QgsWriteVectorTilesMbtilesAlgorithm::name()
const
147 return QStringLiteral(
"writevectortiles_mbtiles" );
150QString QgsWriteVectorTilesMbtilesAlgorithm::displayName()
const
152 return QObject::tr(
"Write Vector Tiles (MBTiles)" );
155QStringList QgsWriteVectorTilesMbtilesAlgorithm::tags()
const
157 return QObject::tr(
"mbtiles,vector" ).split(
',' );
162 return new QgsWriteVectorTilesMbtilesAlgorithm();
165void QgsWriteVectorTilesMbtilesAlgorithm::initAlgorithm(
const QVariantMap & )
172 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_NAME" ), QObject::tr(
"Metadata: Name" ), QVariant(),
false,
true ) );
173 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_DESCRIPTION" ), QObject::tr(
"Metadata: Description" ), QVariant(),
false,
true ) );
174 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_ATTRIBUTION" ), QObject::tr(
"Metadata: Attribution" ), QVariant(),
false,
true ) );
175 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_VERSION" ), QObject::tr(
"Metadata: Version" ), QVariant(),
false,
true ) );
176 auto metaTypeParam = std::make_unique<QgsProcessingParameterString>( QStringLiteral(
"META_TYPE" ), QObject::tr(
"Metadata: Type" ), QVariant(),
false,
true );
177 metaTypeParam->setMetadata( { { QStringLiteral(
"widget_wrapper" ), QVariantMap( { { QStringLiteral(
"value_hints" ), QStringList() << QStringLiteral(
"overlay" ) << QStringLiteral(
"baselayer" ) } } ) }
179 addParameter( metaTypeParam.release() );
180 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_CENTER" ), QObject::tr(
"Metadata: Center" ), QVariant(),
false,
true ) );
185 const QString outputFile = parameterAsFileOutput( parameters, QStringLiteral(
"OUTPUT" ), context );
187 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"mbtiles" ) );
188 dsUri.
setParam( QStringLiteral(
"url" ), outputFile );
193 const QString metaName = parameterAsString( parameters, QStringLiteral(
"META_NAME" ), context );
194 const QString metaDescription = parameterAsString( parameters, QStringLiteral(
"META_DESCRIPTION" ), context );
195 const QString metaAttribution = parameterAsString( parameters, QStringLiteral(
"META_ATTRIBUTION" ), context );
196 const QString metaVersion = parameterAsString( parameters, QStringLiteral(
"META_VERSION" ), context );
197 const QString metaType = parameterAsString( parameters, QStringLiteral(
"META_TYPE" ), context );
198 const QString metaCenter = parameterAsString( parameters, QStringLiteral(
"META_CENTER" ), context );
201 if ( !metaName.isEmpty() )
202 meta[
"name"] = metaName;
203 if ( !metaDescription.isEmpty() )
204 meta[
"description"] = metaDescription;
205 if ( !metaAttribution.isEmpty() )
206 meta[
"attribution"] = metaAttribution;
207 if ( !metaVersion.isEmpty() )
208 meta[
"version"] = metaVersion;
209 if ( !metaType.isEmpty() )
210 meta[
"type"] = metaType;
211 if ( !metaCenter.isEmpty() )
212 meta[
"center"] = metaCenter;
216 outputs.insert( QStringLiteral(
"OUTPUT" ), outputFile );
Represents a coordinate reference system (CRS).
Stores the component parts of a 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 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 vector tile layer destination parameter, for specifying the destination path for a vector tile laye...
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.