25 QString QgsIntersectionAlgorithm::name()
 const 
   27   return QStringLiteral( 
"intersection" );
 
   30 QString QgsIntersectionAlgorithm::displayName()
 const 
   32   return QObject::tr( 
"Intersection" );
 
   35 QString QgsIntersectionAlgorithm::group()
 const 
   37   return QObject::tr( 
"Vector overlay" );
 
   40 QString QgsIntersectionAlgorithm::groupId()
 const 
   42   return QStringLiteral( 
"vectoroverlay" );
 
   45 QString QgsIntersectionAlgorithm::shortHelpString()
 const 
   47   return QObject::tr( 
"This algorithm extracts the overlapping portions of features in the Input and Overlay layers. " 
   48                       "Features in the output Intersection layer are assigned the attributes of the overlapping features " 
   49                       "from both the Input and Overlay layers." );
 
   54   return new QgsIntersectionAlgorithm();
 
   57 void QgsIntersectionAlgorithm::initAlgorithm( 
const QVariantMap & )
 
   63                   QStringLiteral( 
"INPUT_FIELDS" ),
 
   64                   QObject::tr( 
"Input fields to keep (leave empty to keep all fields)" ), QVariant(),
 
   67                   QStringLiteral( 
"OVERLAY_FIELDS" ),
 
   68                   QObject::tr( 
"Overlay fields to keep (leave empty to keep all fields)" ), QVariant(),
 
   71   std::unique_ptr< QgsProcessingParameterString > prefix = std::make_unique< QgsProcessingParameterString >( QStringLiteral( 
"OVERLAY_FIELDS_PREFIX" ), QObject::tr( 
"Overlay fields prefix" ), QString(), 
false, 
true );
 
   73   addParameter( prefix.release() );
 
   82   std::unique_ptr< QgsFeatureSource > sourceA( parameterAsSource( parameters, QStringLiteral( 
"INPUT" ), context ) );
 
   86   std::unique_ptr< QgsFeatureSource > sourceB( parameterAsSource( parameters, QStringLiteral( 
"OVERLAY" ), context ) );
 
   92   const QStringList fieldsA = parameterAsFields( parameters, QStringLiteral( 
"INPUT_FIELDS" ), context );
 
   93   const QStringList fieldsB = parameterAsFields( parameters, QStringLiteral( 
"OVERLAY_FIELDS" ), context );
 
   98   QString overlayFieldsPrefix = parameterAsString( parameters, QStringLiteral( 
"OVERLAY_FIELDS_PREFIX" ), context );
 
  102                              overlayFieldsPrefix );
 
  105   std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( 
"OUTPUT" ), context, dest, outputFields, geomType, sourceA->sourceCrs(), 
QgsFeatureSink::RegeneratePrimaryKey ) );
 
  110   outputs.insert( QStringLiteral( 
"OUTPUT" ), dest );
 
  113   const long total = sourceA->featureCount();
 
  115   QgsOverlayUtils::intersection( *sourceA, *sourceB, *sink, context, feedback, count, total, fieldIndicesA, fieldIndicesB );
 
@ RegeneratePrimaryKey
This flag indicates, that a primary key field cannot be guaranteed to be unique and the sink should i...
Container of fields for a vector layer.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
Base class for providing feedback from a processing algorithm.
@ FlagAdvanced
Parameter is an advanced parameter which should be hidden from users by default.
A feature sink output for processing algorithms.
An input feature source (such as vector layers) parameter for processing algorithms.
A vector layer or feature source field parameter for processing algorithms.
static QgsFields indicesToFields(const QList< int > &indices, const QgsFields &fields)
Returns a subset of fields based on the indices of desired fields.
static QList< int > fieldNamesToIndices(const QStringList &fieldNames, const QgsFields &fields)
Returns a list of field indices parsed from the given list of field names.
static QgsFields combineFields(const QgsFields &fieldsA, const QgsFields &fieldsB, const QString &fieldsBPrefix=QString())
Combines two field lists, avoiding duplicate field names (in a case-insensitive manner).
Type
The WKB type describes the number of dimensions a geometry has.
static Type multiType(Type type) SIP_HOLDGIL
Returns the multi type for a WKB type.