355 Commits

Author SHA1 Message Date
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
Maximilian Krambach
c445828f9e changed check for validity from isGeosValid() to validateGeometry() in dissolve.py 2016-03-21 21:30:23 +01:00
Bernhard Ströbl
bd64b4fd4c [processing] renew test results depending on polys.gml 2016-03-16 14:29:45 +01:00
Bernhard Ströbl
f73b572704 [processing] renew test output for eliminate 2016-03-16 14:07:12 +01:00
Bernhard Ströbl
d7562eef95 [processing] add test for eliminate algorithm 2016-03-16 08:36:02 +01:00
Matthias Kuhn
e888d6d684 [processing] Add autoincremental field test 2016-03-15 11:45:34 +01:00
Matthias Kuhn
9ca09abb02 Fix expected dataset for splitlineswithlines test 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
648e6ac692 [processing] test: remove gfs output files 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
9124586bbf [processing] update test output files 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
bf54b9529a [processing] test cases for splitlineswithlines 2016-03-14 09:57:04 +01:00
Nyall Dawson
d24a2df64d Followup 193fedf, updated expected results 2016-03-04 08:48:04 +01:00
Nyall Dawson
5a18bb628a Revert "Followup 193fedf, updated expected results"
This reverts commit f722bb26a1267274248c9488fcb069719bfde254.
2016-03-04 10:51:41 +11:00
Nyall Dawson
f722bb26a1 Followup 193fedf, updated expected results 2016-03-04 09:12:22 +11:00
Matthias Kuhn
3e5e108b1a [processing] Make basic statistics translatable 2016-02-26 08:58:30 +01:00
Matthias Kuhn
3f10553069 Add new test type "regex" to processing tests 2016-02-23 10:24:34 +01:00
Alexander Bruy
d3852e481e [processing] fix handling of NULLs is Basic statistics for text fields 2016-02-22 13:35:13 +02:00
Matthias Kuhn
20fc30b0fe Add file comparison to processing tests
And a test for basic numeric statistics
2016-02-21 13:15:21 +01:00