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.