1048 Commits

Author SHA1 Message Date
Matthias Kuhn
d2c1011a13
Convert missing from[Geometry]XY calls 2017-10-30 09:14:06 +01:00
Matthias Kuhn
e0025b65b1
Rename QgsGeometry::fromPoint to QgsGeometry::fromPointXY
Also introduces the from[Geometry]XY for QgsGeometryFactory
2017-10-30 09:14:06 +01:00
Matthias Kuhn
750a54f8f6
More drop V2 suffix fixes 2017-10-30 09:14:05 +01:00
Matthias Kuhn
7f3ad76882
Rename QgsMultiPolygonV2 to QgsMultiPolygon 2017-10-30 09:14:04 +01:00
Matthias Kuhn
3fcdcd87af
Rename QgsMultiPointV2 to QgsMultiPoint 2017-10-30 09:14:04 +01:00
Matthias Kuhn
b6f46eae11
Rename QgsPolygonV2 to QgsPolygon 2017-10-30 09:14:04 +01:00
Nyall Dawson
68179e224c Merge pull request #5475 from nyalldawson/snap_to_grid
[FEATURE][processing] Native c++ snap to grid algorithm
2017-10-27 17:19:37 +11:00
Nyall Dawson
4372ac2658 [FEATURE][processing] Native c++ snap to grid algorithm
With support for snapping Z/M values, keeping curves
2017-10-27 15:16:15 +10:00
Harrissou Sant-anna
30aa5f5f96 Allow double typed values in algorithm
Also homogenize the output name
2017-10-27 13:09:39 +11:00
Nyall Dawson
c50ee6d42f Update python code to new API 2017-10-26 07:06:34 +10:00
Alexander Bruy
c64f03d0a4 [processing] keep column names in standard distance matrix (fix #17150) 2017-10-24 15:27:22 +03:00
Nyall Dawson
c4f3832af2 Rename QgsGeometry::fromPolyline as QgsGeometry::fromPolylineXY
and add new QgsGeometry::fromPolyline which uses QgsPoint

We want to encourage people not to use the QgsPointXY method, as it drops
Z/M values. So it's moved across to a different name to make way
for a new QgsGeometry::fromPolyline which uses a QgsPoint list
instead of QgsPointXY, thus keeping Z/M values intact.

Similarly, QgsPolyline now is a list of QgsPoint (keeping z/m values)
and the old 2d QgsPolyline type was renamed to QgsPolylineXY.

Making the QgsPoint method the "preferred" method and making linestrings
just as easy to create from z/m dimensioned points as 2d points is
important to push people to write code which does not discard
these important dimensions.

As a bonus, the QgsPoint methods are more efficient anyway, since
they don't require creation of a temporary list.
2017-10-22 18:10:14 +10:00
Matthias Kuhn
8b3a348b6d Fix file modes 2017-10-16 23:00:53 +02:00
Nyall Dawson
18f85d9e54 Port drop M/Z algorithm to c++ 2017-10-13 08:30:12 +10:00
Nyall Dawson
b5197c8c53 Port drop geometries to c++ 2017-10-13 08:29:37 +10:00
Nyall Dawson
2951afa324 Port boundary algorithm to c++
Also allow feature based algorithms to customise their appectable
input layers types and set suitable filters for all applicable
algorithms
2017-10-13 08:28:34 +10:00
Nyall Dawson
97c1b0d322 [FEATURE] Port autoincremental field to c++
Also add:
- support for setting initial value for field to start at
- support for user-set field names (instead of always using 'AUTO')
2017-10-13 08:26:36 +10:00
Nyall Dawson
cc19d0a70d Port hub lines algorithm to c++
Also:
- optimise a bit
- retain z/m values
- use point on surface for non-point layers, instead of
center of geometry bounding box
2017-10-13 08:26:36 +10:00
Nyall Dawson
cac171a2e0 Port Join Attributes to c++, add option to select subset of fields to copy 2017-10-13 08:26:36 +10:00
Matthias Kuhn
44c1f7fc3c
chmod -x StatisticsByCateogries.py 2017-09-28 13:22:31 +02:00
Matthias Kuhn
f6479c1f79 [processing] Fields mapper code improvement 2017-09-26 14:29:05 +02:00
Nyall Dawson
f8cf2f4dbe [processing] Fix Refactor Fields rejects valid field configuration input 2017-09-26 13:58:01 +10:00
Alexander Bruy
745111dbdb [processing] enable network analysis tests 2017-09-25 11:20:42 +03:00
Nyall Dawson
1d6e30324f Use correct SRS when building graph 2017-09-24 12:09:38 +10:00
Nyall Dawson
6efcc2fe86 Transparently reproject source points in algs 2017-09-24 12:09:38 +10:00
Nyall Dawson
0dd434c183 [processing] Port mean coordinates to c++
And remove final use of inefficient vector.extractPoints function
2017-09-23 09:25:18 +10:00
Nyall Dawson
10d6ef06e8 Replace more duplicate code with QgsProcessingUtils.combineFields 2017-09-23 08:41:54 +10:00
Nyall Dawson
a191c77bcb Remove duplicate testForUniqueness method (replaced with QgsProcessingUtils.combineFields) 2017-09-23 08:37:35 +10:00
Nyall Dawson
21f92a6fb2 Port line intersection and split with lines to c++ 2017-09-22 15:19:32 +10:00
Nyall Dawson
c41dca937c Port processing combineFields to c++ 2017-09-22 15:19:32 +10:00
Matthias Kuhn
b1b21ed25f Merge pull request #5143 from m-kuhn/nulldatasetparams
QgsVectorFilewriter skip default null options
2017-09-20 11:44:57 +02:00
Matthias Kuhn
0ac02497b9
[processing] Make python field calculator support LongLong 2017-09-19 15:01:54 +02:00
Matthias Kuhn
506b35a75d
[processing] Fix type resolving in python field calculator 2017-09-19 15:01:54 +02:00
Mathieu Pellerin
01468d0879 Merge pull request #5204 from nirvn/saveselected_native 2017-09-16 12:17:11 +07:00
Nyall Dawson
085687d8f0 Also update other spatial join alg 2017-09-16 10:21:54 +10:00
Nyall Dawson
ecf7dd5e4f Update class name 2017-09-16 09:59:13 +10:00
arnaud.morvan@camptocamp.com
b08119bc96 [processing] Add ui option useCheckBoxes in ByLocation algorithms 2017-09-16 09:58:35 +10:00
arnaud.morvan@camptocamp.com
53df3699fd [processing] add ui option useCheckBoxes in CheckValidity 2017-09-16 09:57:13 +10:00
nirvn
04ee85f0e8 [processing] native save selected features algorithm 2017-09-15 15:51:30 +07:00
Nyall Dawson
60b56db904 Use CRS when calculating extent during algorithm extection 2017-09-15 08:35:11 +10:00
Nyall Dawson
d96a3f4dd4 Port simplify geometries to c++ 2017-09-14 09:57:15 +10:00
Nyall Dawson
8e8f3edc55 Port merge lines and smooth to c++ 2017-09-14 09:57:15 +10:00
Nyall Dawson
7c5521ecdf Port fix geometries alg to c++ 2017-09-14 09:57:15 +10:00
Nyall Dawson
bf078b1c84 [processing] Fix intersection and union tools don't work with
input layers with Z or M values present

Also ensure that written geometries are always multitype, to
match the created layer geometry type (before the layer was
being created as a multi* layer, but single part geometries
were sometimes created. This causes errors with some data
providers)
2017-09-14 07:35:54 +10:00
Nyall Dawson
be88da8173 [FEATURE][processing] Add 'Join by location (summary)' algorithm
Like the main Join Attributes by Location algorithm, this algorithm
takes two layers and combines the attributes based on a spatial
criteria.

However this algorithm calculates summaries for the attributes for
all matching features, e.g. calculating the mean/min/max/etc.

The list of fields to summaries, and the summaries to
calculate for those, can be selected.
2017-09-13 18:45:56 +10:00
Nyall Dawson
458e994d39 [FEATURE] Reworked processing 'Join by location' alg
Improvements:
- transparently handle different source/join CRS
- added option to create output feature for EVERY joined
feature (i.e. 1 to many type join)
- added option to select joined fields to take
- optimised performance of algorithm

The previous option to create a summary of joined features has been
removed, and will be moved to a separate 'Join by location (summary)'
algorithm.
2017-09-13 08:01:56 +10:00
Nyall Dawson
a650681061 Merge pull request #5131 from nyalldawson/location_algs
Rework Select by Location algorithm
2017-09-11 15:50:43 +10:00
Nyall Dawson
640a27b4ea Drop python Select/Extract by Location algs 2017-09-08 20:34:52 +10:00
Nyall Dawson
a9f4540081 Remove 'precision' option from spatial relation processing algs
Rationale:
- the correct use for this option is unclear, and users are
mistakenly using it as a 'tolerance' option
- it's very likely to generate invalid geometries as a result
of the snapping, causing unreliable results

Given these substantial issues, it's safer to remove this
option and require that users who need the snap to grid
precision change explicitly do this via an extra model
step before running the algorithm.
2017-09-08 16:48:59 +10:00
Nyall Dawson
24a4ab7f0d Rework Select by Location algorithm
Changes:

- handle different CRS transparently

- don't build a spatial index on the selection layer. Instead
only use feature requests to fetch features which are within
the desired bounds, and rely on the presence of an appropriate
spatial index at the provider's backend. Otherwise, we force
every user of this algorithm to have a full iteration of the
source table, regardless of how large the table is. That means
that trying to select a set of addresses which fall within
a specific locality from a table which contains the addresses
for a whole state will FORCE every address in the state to
be initially read before any calculation begins. With this
change only those features within the bounding box of the
selected localities will ever be fetched from the provider,
resulting in huge speed improvements for the algorithm.

- use prepared geometries for the spatial relation tests.
This dramatically speeds up the algorithm in the case
where the intersection layer features cover multiple
features from the 'selection' layer.

- Add a 'select within current selection' mode

- Optimise feature requests for efficiency (especially
with respect to the 'disjoint' selection mode)
2017-09-08 16:48:59 +10:00