Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #5237 from nyalldawson/port_algs
[processing] Port line intersection and split with lines to c++
  • Loading branch information
nyalldawson committed Sep 22, 2017
2 parents 5d6c178 + 57b7692 commit a6b1c3e
Show file tree
Hide file tree
Showing 35 changed files with 1,056 additions and 610 deletions.
15 changes: 15 additions & 0 deletions python/core/processing/qgsprocessingutils.sip
Expand Up @@ -193,6 +193,21 @@ class QgsProcessingUtils
:rtype: str
%End

static QgsFields combineFields( const QgsFields &fieldsA, const QgsFields &fieldsB );
%Docstring
Combines two field lists, avoiding duplicate field names (in a case-insensitive manner).

Duplicate field names will be altered to "name_2", "name_3", etc, finding the first
non-duplicate name.

.. note::

Some output file formats (e.g. shapefiles) have restrictions on the maximum
length of field names, so be aware that the results of calling this method may
be truncated when saving to these formats.
:rtype: QgsFields
%End

};

class QgsProcessingFeatureSource : QgsFeatureSource
Expand Down
5 changes: 3 additions & 2 deletions python/plugins/processing/algs/qgis/HubLines.py 100644 → 100755
Expand Up @@ -37,7 +37,8 @@
QgsProcessingParameterField,
QgsProcessingParameterFeatureSink,
QgsProcessingException,
QgsExpression)
QgsExpression,
QgsProcessingUtils)
from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
from processing.tools import vector

Expand Down Expand Up @@ -89,7 +90,7 @@ def processAlgorithm(self, parameters, context, feedback):
field_spoke = self.parameterAsString(parameters, self.SPOKE_FIELD, context)
field_spoke_index = hub_source.fields().lookupField(field_spoke)

fields = vector.combineFields(hub_source.fields(), spoke_source.fields())
fields = QgsProcessingUtils.combineFields(hub_source.fields(), spoke_source.fields())

(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
fields, QgsWkbTypes.LineString, hub_source.sourceCrs())
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/JoinAttributes.py 100644 → 100755
Expand Up @@ -82,7 +82,7 @@ def processAlgorithm(self, parameters, context, feedback):
joinField1Index = input.fields().lookupField(field)
joinField2Index = input2.fields().lookupField(field2)

outFields = vector.combineFields(input.fields(), input2.fields())
outFields = QgsProcessingUtils.combineFields(input.fields(), input2.fields())

(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
outFields, input.wkbType(), input.sourceCrs())
Expand Down
181 changes: 0 additions & 181 deletions python/plugins/processing/algs/qgis/LinesIntersection.py

This file was deleted.

4 changes: 0 additions & 4 deletions python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py 100644 → 100755
Expand Up @@ -91,7 +91,6 @@
from .ImportIntoSpatialite import ImportIntoSpatialite
from .Intersection import Intersection
from .JoinAttributes import JoinAttributes
from .LinesIntersection import LinesIntersection
from .LinesToPolygons import LinesToPolygons
from .MeanCoords import MeanCoords
from .Merge import Merge
Expand Down Expand Up @@ -147,7 +146,6 @@
from .SpatialIndex import SpatialIndex
from .SpatialJoin import SpatialJoin
from .SpatialJoinSummary import SpatialJoinSummary
from .SplitWithLines import SplitWithLines
from .StatisticsByCategories import StatisticsByCategories
from .SumLines import SumLines
from .SymmetricalDifference import SymmetricalDifference
Expand Down Expand Up @@ -227,7 +225,6 @@ def getAlgs(self):
ImportIntoSpatialite(),
Intersection(),
JoinAttributes(),
LinesIntersection(),
LinesToPolygons(),
MeanCoords(),
Merge(),
Expand Down Expand Up @@ -283,7 +280,6 @@ def getAlgs(self):
SpatialIndex(),
SpatialJoin(),
SpatialJoinSummary(),
SplitWithLines(),
StatisticsByCategories(),
SumLines(),
SymmetricalDifference(),
Expand Down
3 changes: 2 additions & 1 deletion python/plugins/processing/algs/qgis/SpatialJoin.py 100644 → 100755
Expand Up @@ -37,6 +37,7 @@
QgsFeatureRequest,
QgsGeometry,
QgsProcessing,
QgsProcessingUtils,
QgsProcessingParameterBoolean,
QgsProcessingParameterFeatureSource,
QgsProcessingParameterEnum,
Expand Down Expand Up @@ -148,7 +149,7 @@ def processAlgorithm(self, parameters, context, feedback):
if idx >= 0:
fields_to_join.append(join_source.fields().at(idx))

out_fields = vector.combineFields(source_fields, fields_to_join)
out_fields = QgsProcessingUtils.combineFields(source_fields, fields_to_join)

(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
out_fields, source.wkbType(), source.sourceCrs())
Expand Down
3 changes: 2 additions & 1 deletion python/plugins/processing/algs/qgis/SpatialJoinSummary.py 100644 → 100755
Expand Up @@ -43,6 +43,7 @@
QgsDateTimeStatisticalSummary,
QgsStringStatisticalSummary,
QgsProcessing,
QgsProcessingUtils,
QgsProcessingParameterBoolean,
QgsProcessingParameterFeatureSource,
QgsProcessingParameterEnum,
Expand Down Expand Up @@ -247,7 +248,7 @@ def addField(original, stat, type):
else:
addFieldKeepType(join_field, f[0])

out_fields = vector.combineFields(source_fields, fields_to_join)
out_fields = QgsProcessingUtils.combineFields(source_fields, fields_to_join)

(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
out_fields, source.wkbType(), source.sourceCrs())
Expand Down

0 comments on commit a6b1c3e

Please sign in to comment.