26QString QgsWriteVectorTilesBaseAlgorithm::group()
const
28 return QObject::tr(
"Vector tiles" );
31QString QgsWriteVectorTilesBaseAlgorithm::groupId()
const
33 return QStringLiteral(
"vectortiles" );
36QString 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." );
41QString QgsWriteVectorTilesBaseAlgorithm::shortDescription()
const
43 return QObject::tr(
"Exports one or more vector layers to vector tiles." );
46void QgsWriteVectorTilesBaseAlgorithm::addBaseParameters()
59 const int minZoom = parameterAsInt( parameters, QStringLiteral(
"MIN_ZOOM" ), context );
60 const int maxZoom = parameterAsInt( parameters, QStringLiteral(
"MAX_ZOOM" ), context );
62 const QVariant layersVariant = parameters.value( parameterDefinition( QStringLiteral(
"LAYERS" ) )->name() );
73 prepareWriter( writer, parameters, context, outputs );
80 if ( parameters.contains( QStringLiteral(
"EXTENT" ) ) )
86 const bool res = writer.
writeTiles( feedback );
98QString QgsWriteVectorTilesXyzAlgorithm::name()
const
100 return QStringLiteral(
"writevectortiles_xyz" );
103QString QgsWriteVectorTilesXyzAlgorithm::displayName()
const
105 return QObject::tr(
"Write Vector Tiles (XYZ)" );
108QStringList QgsWriteVectorTilesXyzAlgorithm::tags()
const
110 return QObject::tr(
"xyz,vector,tiles" ).split(
',' );
115 return new QgsWriteVectorTilesXyzAlgorithm();
118void QgsWriteVectorTilesXyzAlgorithm::initAlgorithm(
const QVariantMap & )
121 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"XYZ_TEMPLATE" ), QObject::tr(
"File template" ), QStringLiteral(
"{z}/{x}/{y}.pbf" ) ) );
128 const QString outputDir = parameterAsString( parameters, QStringLiteral(
"OUTPUT_DIRECTORY" ), context );
129 const QString xyzTemplate = parameterAsString( parameters, QStringLiteral(
"XYZ_TEMPLATE" ), context );
131 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"xyz" ) );
132 dsUri.
setParam( QStringLiteral(
"url" ), QUrl::fromLocalFile( outputDir +
"/" + xyzTemplate ).toString() );
137 outputs.insert( QStringLiteral(
"OUTPUT_DIRECTORY" ), outputDir );
144QString QgsWriteVectorTilesMbtilesAlgorithm::name()
const
146 return QStringLiteral(
"writevectortiles_mbtiles" );
149QString QgsWriteVectorTilesMbtilesAlgorithm::displayName()
const
151 return QObject::tr(
"Write Vector Tiles (MBTiles)" );
154QStringList QgsWriteVectorTilesMbtilesAlgorithm::tags()
const
156 return QObject::tr(
"mbtiles,vector" ).split(
',' );
161 return new QgsWriteVectorTilesMbtilesAlgorithm();
164void QgsWriteVectorTilesMbtilesAlgorithm::initAlgorithm(
const QVariantMap & )
171 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_NAME" ), QObject::tr(
"Metadata: Name" ), QVariant(),
false,
true ) );
172 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_DESCRIPTION" ), QObject::tr(
"Metadata: Description" ), QVariant(),
false,
true ) );
173 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_ATTRIBUTION" ), QObject::tr(
"Metadata: Attribution" ), QVariant(),
false,
true ) );
174 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_VERSION" ), QObject::tr(
"Metadata: Version" ), QVariant(),
false,
true ) );
175 auto metaTypeParam = std::make_unique<QgsProcessingParameterString>( QStringLiteral(
"META_TYPE" ), QObject::tr(
"Metadata: Type" ), QVariant(),
false,
true );
176 metaTypeParam->setMetadata( { { QStringLiteral(
"widget_wrapper" ), QVariantMap( { { QStringLiteral(
"value_hints" ), QStringList() << QStringLiteral(
"overlay" ) << QStringLiteral(
"baselayer" ) } } ) }
178 addParameter( metaTypeParam.release() );
179 addParameter(
new QgsProcessingParameterString( QStringLiteral(
"META_CENTER" ), QObject::tr(
"Metadata: Center" ), QVariant(),
false,
true ) );
184 const QString outputFile = parameterAsFileOutput( parameters, QStringLiteral(
"OUTPUT" ), context );
186 dsUri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"mbtiles" ) );
187 dsUri.
setParam( QStringLiteral(
"url" ), outputFile );
192 const QString metaName = parameterAsString( parameters, QStringLiteral(
"META_NAME" ), context );
193 const QString metaDescription = parameterAsString( parameters, QStringLiteral(
"META_DESCRIPTION" ), context );
194 const QString metaAttribution = parameterAsString( parameters, QStringLiteral(
"META_ATTRIBUTION" ), context );
195 const QString metaVersion = parameterAsString( parameters, QStringLiteral(
"META_VERSION" ), context );
196 const QString metaType = parameterAsString( parameters, QStringLiteral(
"META_TYPE" ), context );
197 const QString metaCenter = parameterAsString( parameters, QStringLiteral(
"META_CENTER" ), context );
200 if ( !metaName.isEmpty() )
201 meta[
"name"] = metaName;
202 if ( !metaDescription.isEmpty() )
203 meta[
"description"] = metaDescription;
204 if ( !metaAttribution.isEmpty() )
205 meta[
"attribution"] = metaAttribution;
206 if ( !metaVersion.isEmpty() )
207 meta[
"version"] = metaVersion;
208 if ( !metaType.isEmpty() )
209 meta[
"type"] = metaType;
210 if ( !metaCenter.isEmpty() )
211 meta[
"center"] = metaCenter;
215 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.