71 Commits

Author SHA1 Message Date
Alexander Bruy
31a6189a9c [processing] add test for OGR polygon buffering 2016-11-12 13:31:42 +02:00
Alexander Bruy
5991eccb47 [processing] simple test for ogr buffering 2016-11-12 13:31:42 +02:00
Alexander Bruy
159fda68f2 [processing] add test for gdal_polygonize 2016-11-12 13:31:41 +02:00
Nyall Dawson
4e4bb2bf6b Merge pull request #3728 from nyalldawson/open
Cleanup processing file handling
2016-11-07 13:20:13 +10:00
Nyall Dawson
8acc286b0f [FEATURE] Snap to layer algorithm accepts a mode parameter
With a new option to prefer to snap to closest point on geometry.
The old behaviour was to prefer to snap to nodes, even if a node
was further from the input geometry than a segment. The new option
allows you to snap geometries to the closest point, regardless
of whether it's a node or segment.
2016-11-07 12:20:59 +10:00
Nyall Dawson
dae0a01761 [FEATURE][processing] Snap geometries algorithm allows snapping
to other layer types, supports point/line layers

Fix #14791, #15313
2016-11-07 12:20:59 +10:00
Nyall Dawson
c3a978b9da [FEATURE][processing] Snap geometries to layer algorithm
Port the Geometry Snapper plugin across to the analysis lib, and
expose to python bindings

Add a new algorithm which performs the snapping to layers
2016-11-07 12:20:59 +10:00
Nyall Dawson
6a99017bf0 [processing] Use with ... when opening files 2016-11-07 11:36:38 +10:00
Nyall Dawson
d783c732a5 Fix processing tests 2016-11-07 11:11:30 +10:00
Nyall Dawson
f65e770242 [FEATURE[processing] New algorithm to compute geometry by expression
This algorithm updates existing geometries (or creates new
geometries) for input features by use of a QGIS expression. This
allows complex geometry modifications which can utilise all the
flexibility of the QGIS expression engine to manipulate and create
geometries for output features.
2016-11-02 16:05:46 +10:00
Nyall Dawson
82312e10e4 [FEATURE][processing] New algorithm to extract specific nodes
This algorithm allows you to extract specific nodes from geometries.
Eg you can extract the first or last node in the geometry.

The algorithm accepts a comma separated list of node indices to
extract, eg 0 = first node, 1 = second node, etc. Negative indices
can be used to extract nodes from the end of the geometry. Eg
-1 = last node, -2 = second last node.
2016-10-31 07:56:24 +10:00
Nyall Dawson
8dab2cd4d7 [FEATURE][processing] New algorithm to extend lines
Allows extending linestrings by a set distance at the start
and end of the line
2016-10-31 07:56:24 +10:00
Nyall Dawson
74e64645e4 [FEATURE][processing] New extract by expression algorithm
Filters an input layer by expression
2016-10-29 08:05:26 +10:00
Nyall Dawson
5eb875d63b [processing] Add algorithm to strip null geometries 2016-10-24 11:24:37 +10:00
Alexander Bruy
58f31f1a82 [processing] add tests for interpolation tools 2016-10-19 16:43:05 +03:00
Piotr Pociask
cd0fefb42b [processing] Update voronoi classes for Python3; update expected data for multipoint Delaunay traingulation test 2016-10-19 11:15:38 +02:00
Piotr Pociask
3af23036fd Test for multipoint Delaunay triangulation 2016-10-19 11:15:38 +02:00
Nyall Dawson
a05b610a8b [processing] Use prepared geometries for intersects tests
Wherever possible use prepared geometry engines for intersects
type tests, as it's much faster
2016-10-17 11:18:46 +10:00
Nyall Dawson
d4323addf0 [processing] Fix missing points in polygons menu item (fix #15670)
Also add a unit test
2016-10-11 09:30:46 +10:00
Nyall Dawson
90aebd117d [processing] Add geometry info should add z/m values (fix #14659) 2016-10-11 09:30:41 +10:00
Alexander Bruy
519e76c79f [processing] add test for gdalinfo algorithm 2016-09-14 15:55:14 +03:00
Nyall Dawson
4d60d0cdb5 [FEATURE] Add option to QgsGeometry::smooth to not smooth
segments shorter than a certain threshold or sharp corners
with an angle exceeding a threshold

Expose the angle threshold to processing smooth algorithm

Also:
- optimise QgsGeometry::smooth for new geometry classes
- Fix smooth does not work with geometries containing Z/M
2016-09-03 08:31:33 +10:00
Nyall Dawson
56b77db88c [FEATURE][processing] Add choice of simplification method to simplify
This change allows users to choose which method to use when running
the simplify geometries algorithm, with choices of the existing
distance based (Douglas Peucker) algorithm, area based (Visvalingam)
algorithm and snap-to-grid.

Visvaligam in particular usually results in more cartographically
pleasing simplification over the standard distance based methods.
2016-09-01 08:22:18 +10:00
Nyall Dawson
5d97d03ad5 [processing] Fix simplify alg handling of null goemetry, add tests 2016-09-01 07:50:02 +10:00
Nyall Dawson
9fa4e776db [FEATURE][processing] Extract nodes algorithm now saves node
index, distance along line and angle at node

Also correctly handles null geometries
2016-08-29 11:02:14 +10:00
Nyall Dawson
989d9864c5 [FEATURE][processing] New algorithm for single sided buffers 2016-08-17 06:44:04 +10:00
Nyall Dawson
0f268bf27a [FEATURE][processing] New algorithm for translating (moving) points
Allows geometries to be shifted by a x/y displacement
2016-08-14 14:36:10 +10:00
Nyall Dawson
e9423dc4dd [processing] Rework centroid algorithm to handle non-polygon layers
The existing polygoncentroids algorithm has been deprecated
(and hidden from the toolbox), and a new, generic centroids
algorithm added which works with lines and multipoints
2016-08-12 07:50:47 +10:00
Nyall Dawson
9bc61e77c7 [processing] Create vector files using default dataset/layer options
Fixes missing CRS when saving to GML (fix #14544)
2016-08-12 07:01:04 +10:00
Nyall Dawson
5025c828e5 [processing] Expose buffer settings (cap/join style/mitre limit)
Also make fixed distance buffer correctly handle null geometries
(copy the row as a geometryless row)
2016-08-11 18:35:30 +10:00
Nyall Dawson
0a2b661ecb Make QgsGeometry::offsetCurve handle multi* geometries 2016-08-11 17:59:01 +10:00
Nyall Dawson
82f4a82c66 [FEATURE][processing] New algorithm for offsetting lines 2016-08-11 08:38:43 +10:00
Nyall Dawson
142de7cb08 [FEATURE][processing] Point on surface algorithm 2016-08-10 16:57:38 +10:00
Nyall Dawson
ab022451a5 [FEATURE][processing] New algorithm for geometry boundary 2016-08-10 16:32:31 +10:00
Nyall Dawson
bd8db5d156 [FEATURE][processing] New algorithm for calculating feature bounding boxes 2016-08-10 15:41:44 +10:00
Nyall Dawson
71ebdb8f69 [FEATURE] Optimise processing clip algorithm
Before the algorithm was written to optimise clipping a few
features against thousands of mask features. The revised algorithm
is optimised for clipping thousands of input features against
a few mask features.

Given that this second operation is much more likely, it makes
sense to optimise for this use case.

I've also applied some other optimisations like taking advantage
of spatial indexes on the providers, using prepared geometries
and also only applying an intersection operation if the geometry
isn't wholly contained by the mask geometry.

Benchmarks:

clipping roads layer with 1 million lines against 2 polygons

before: 5 mins 30 seconds
after: 10 seconds

clipping address layer with 5 million points against 2 polygons

before: 50 minutes
after: 30 seconds
2016-08-03 13:15:03 +10:00
Nyall Dawson
4bfdcf0927 Fix expected test data 2016-08-02 13:50:59 +10:00
Nyall Dawson
60147e8147 Remove use of constGeometry 2016-08-02 13:50:59 +10:00
Nyall Dawson
bb54b4f41a [FEATURE] Make processing dissolve algorithm accept multiple fields
This allows you to dissolve based on more than one field value
2016-08-02 11:54:02 +10:00
Nyall Dawson
0455b6600d [processing] Fix multipart to singlepart handling of null geometry 2016-08-02 11:53:11 +10:00
Nyall Dawson
ccfd4c36be [processing] Add test for dissolve using field values 2016-08-02 11:52:37 +10:00
Nyall Dawson
30fcaed634 [FEATURE][processing] New algorithm for merging connected lines
This algorithm joins all connected parts of MultiLineString
geometries into single LineString geometries.

If any parts of the input MultiLineString geometries are not
connected, the resultant geometry will be a MultiLineString
containing any lines which could be merged and any non-connected
line parts.
2016-08-02 11:51:44 +10:00
Nyall Dawson
2db7fca7a6 [processing] Add tests for clip algorithm 2016-07-14 08:05:59 +10:00
Médéric RIBREUX
a1c541ee6d Add another bunch of tests for rasters 2016-06-26 16:13:39 +02:00
Médéric RIBREUX
bb94a179a9 Add new test data and a bunch of unit tests 2016-06-12 17:36:42 +02:00
Médéric Ribreux
1f21af6672 Improve tests: add external file support into AlgorithmsTest 2016-05-29 09:00:16 +02:00
Matthias Kuhn
dbb24e971e [processing tests] More tolerance in statistics test 2016-05-22 21:52:55 +02:00
Alexander Bruy
b7a4e20627 [processing] add Rectangles, Ovals, Diamonds algorithm (fix #11575)
This is direct port of abandoned "Rectangles, Ovals and diamonds" plugin.
There are two algorithms: one uses fixed values and second — variable
values from attribute table. Test for fixed distance version included.
2016-04-13 12:33:08 +03:00
Anita Graser
b8d1fb6fc9 added buffer tests 2016-03-27 13:31:14 +02:00
Maximilian Krambach
097b18190c identation errors and wrong file paths 2016-03-22 22:01:21 +01:00