9929 Commits

Author SHA1 Message Date
Nyall Dawson
340cf93f93 [FEATURE] New algorithms to add Z/M values to existing geometries
Allows upgrading geometries to include these dimensions, or
overwriting any existing Z/M values with a new value.

Intended mostly as a test run for QgsProcessingFeatureBasedAlgorithm
2017-07-18 19:41:33 +10:00
Nyall Dawson
b9f225905a Port a single python algorithm to QgsProcessingFeatureBasedAlgorithm 2017-07-18 19:41:33 +10:00
Nyall Dawson
7e3c435dd6 Port some existing algorithms to QgsProcessingFeatureBasedAlgorithm 2017-07-18 19:41:33 +10:00
Nyall Dawson
1a41624370 Add QgsProcessingFeatureBasedAlgorithm subclass
An abstract QgsProcessingAlgorithm base class for processing algorithms
which operate "feature-by-feature".

Feature based algorithms are algorithms which operate on individual
features in isolation. These are algorithms where one feature is
output for each input feature, and the output feature result
for each input feature is not dependent on any other features
present in the source.

For instance, algorithms like "centroids" and "buffers" are feature
based algorithms since the centroid or buffer of a feature is
calculated for each feature in isolation. An algorithm like "dissolve"
is NOT suitable for a feature based algorithm as the dissolved output
depends on multiple input features and these features cannot be
processed in isolation.

Using QgsProcessingFeatureBasedAlgorithm as the base class for feature
based algorithms allows shortcutting much of the common algorithm code
for handling iterating over sources and pushing features to output sinks.
It also allows the algorithm execution to be optimised in future
(for instance allowing automatic multi-thread processing of the
algorithm, or use of the algorithm in "chains", avoiding the need
for temporary outputs in multi-step models).
2017-07-18 19:41:33 +10:00
Nyall Dawson
b83415688a Save/restore window geometry for plugin installer repo fetching dialog 2017-07-18 13:49:03 +10:00
Mathieu Pellerin
3037f22482 Non-blocking save as image/PDF dialogs (#4874) 2017-07-18 10:47:06 +07:00
Juergen E. Fischer
9bae832753 add (unemitted) signals to provider source selectors to silence data
source manager connection warnings
2017-07-18 00:09:32 +02:00
Juergen E. Fischer
bae6d56388 consider datum transformation when pasting features (fixes #16846) 2017-07-17 22:22:49 +02:00
Alexander Bruy
f3f74a9ddf [processing] adapt network analysis algorithms to latest API changes 2017-07-17 11:32:12 +03:00
Alexander Bruy
4a6ceffc54 [processing] make service area outputs optional 2017-07-17 11:09:28 +03:00
Alexander Bruy
bee5683643 [processing] allow diferent CRS for point layers and network layer 2017-07-17 11:09:28 +03:00
Alexander Bruy
95de3a414a [processing] add cancellation support where possible 2017-07-17 11:09:28 +03:00
Alexander Bruy
5af177e963 [processing] restore Service area from layer 2017-07-17 11:09:28 +03:00
Alexander Bruy
abd14e8b94 [processing] restore Service area from point 2017-07-17 11:09:28 +03:00
Alexander Bruy
1e795960b6 [processing] restore Shortest path from layer to point 2017-07-17 11:09:28 +03:00
Alexander Bruy
494ceff3b4 [processing] restore Shortest path from point to layer 2017-07-17 11:09:28 +03:00
Alexander Bruy
c5ed53942c [processing] restore Shortest path from point to point 2017-07-17 11:09:28 +03:00
Alexander Bruy
6c0cb2f5c0 Merge pull request #4872 from alexbruy/network-api
[API] small improvements for network analysis API
2017-07-17 11:08:04 +03:00
Matthias Kuhn
246685b0cb [processing] Better error reporting in point on surface 2017-07-17 08:38:01 +02:00
Matthias Kuhn
2b2d5e3637 [FEATURE] Give access to geometry errors
When methods are called that use GEOS to create new geometries, the
result geometries now contain information about what has gone wrong in
case of an error.

In practice, this means it's possible to give more detailed information
in place (and not only in the message log) when things like processing
algorithms fail.
2017-07-17 08:38:01 +02:00
Nyall Dawson
db11185d24 Make doc test happy 2017-07-17 13:24:14 +10:00
Nyall Dawson
4e5597ab72 Merge pull request #4848 from nyalldawson/virtual_agg
Fix aggregate calculation in virtual fields
2017-07-17 12:49:47 +10:00
Nyall Dawson
3a2710efe5 Merge pull request #4870 from nyalldawson/algs3
Port 4 more algs to new API
2017-07-17 07:51:47 +10:00
Nyall Dawson
6487fbb2d1 Port Reverse Line Direction to new API, add test 2017-07-17 07:24:33 +10:00
Alexander Bruy
09bb55a895 initialize QgsFeedback with nullptr by default 2017-07-16 17:02:20 +03:00
Tom Kralidis
97c1def8b5 Merge pull request #4857 from jcomas/patch-1
[MetaSearch] Update connections-default.xml
2017-07-16 07:53:25 -04:00
Alexander Bruy
f3d42a2cda [network analysis] use QgsFeedback for progress reporting and
cancelation
2017-07-16 14:36:04 +03:00
Alexander Bruy
126a27425a [network analysis] use QgsFeatureSource instead of QgsVectorLayer in
QgsVectorLayerDirector
2017-07-16 14:31:52 +03:00
Nyall Dawson
9cbc8cc20f Port Offset line, Orthogonalize and Pole of Inaccessibility to new API
Improvements:
- Fix handling of multiline outputs for Offset Line algorithm
2017-07-16 20:39:43 +10:00
Nyall Dawson
23a4d6028a Merge pull request #4868 from nyalldawson/nn
Port Remove Null Geometries algorithm to c++/new API
2017-07-16 20:20:23 +10:00
Matthias Kuhn
261391d499 Handle geos errors 2017-07-16 10:35:47 +02:00
Matthias Kuhn
102188aca4 Port PointOnSurface QGIS algorithm 2017-07-16 10:35:47 +02:00
Nyall Dawson
1342f4d9ac Add API to set optional destination parameters as not created by default
This allows optional outputs (such as null geometry features detected
by the Remove Null Geometries algorithm) to be skipped by default
when desirable.
2017-07-16 18:19:24 +10:00
Nyall Dawson
5deb8fcb87 Port Remove Null Geometries algorithm to c++/new API
Enhancements:
- add a new optional output for null geometries, and make
the non-null geometry output optional. This allows the algorithm
to act as a router for features with null/not null geometries
inside of a model
2017-07-16 17:56:10 +10:00
Nyall Dawson
aec6a79462 Merge pull request #4863 from nyalldawson/nn
Port 2 more processing algorithms
2017-07-16 17:30:15 +10:00
Matthias Kuhn
99a9e249f5 Fix file permissions for processing algs 2017-07-16 08:01:06 +02:00
Nyall Dawson
1b1dc7de63 Port Extract Nodes to new API
Improvements:
- Retain Z/M values from input geometries
2017-07-16 15:55:05 +10:00
Nyall Dawson
bb344bcee2 Fix typo 2017-07-15 22:08:39 +10:00
Nyall Dawson
ea06500caf Port Unique Values algorithm to new API
Improvements:
- by default output a table with unique values, instead of a HTML
file. This allows the values to be more easily used in follow up
analysis (e.g. in a model). HTML output is still available, but
not output by default
2017-07-15 22:07:12 +10:00
Nyall Dawson
82edbab814 Fix mean coords uses old exception 2017-07-15 21:17:50 +10:00
Nyall Dawson
b7f888bf5b Port Distance Matrix algorithm to new API
Enhancements:
- support source/target layers in different CRS
- output layers with geometry (i.e. keep input point geometry - avoids
need to rejoin result back to original table to get geometry)
- keep original data types for id fields
- don't fire off many single feature requests - instead request
multiple features at once to improve speed
2017-07-15 20:33:53 +10:00
Nyall Dawson
7f58af11ae Port mean coords algorithm to new API
Improvements:
- Don't export UID class field if no class field was set
2017-07-15 20:33:08 +10:00
Nyall Dawson
a6736ceb77 Add ability to select output fields from both layers to Intersection algorithm 2017-07-15 17:40:45 +10:00
Nyall Dawson
02bf88c4b7 Port Line Intersection algorithm to new API
Improvements
- allow different CRS between layers
- instead of optionally allowing selection of a single field to keep from
both inputs, allow selection of multiple fields
2017-07-15 17:40:45 +10:00
Nyall Dawson
eaad18c6ad Merge pull request #4861 from nyalldawson/nn
Port nearest neighbour alg to new API
2017-07-15 17:40:32 +10:00
Nyall Dawson
7baa623f6f Allow bulk load of QgsSpatialIndex to be canceled via QgsFeedback 2017-07-15 16:43:44 +10:00
Alexander Bruy
671f024789 fix tests 2017-07-15 09:30:21 +03:00
Alexander Bruy
f3f9e544ab [processing] restore Hillshade algorithm 2017-07-15 09:29:35 +03:00
Alexander Bruy
f4bba54a11 [processing] restore Ruggedness algorithm 2017-07-15 09:29:35 +03:00
Alexander Bruy
05b4cc22bf [processing] restore Slope algorithm 2017-07-15 09:29:35 +03:00