1984 Commits

Author SHA1 Message Date
Nyall Dawson
275eb9463d [FEATURE] Add closest_point and shortest_line expression functions
closest_point: returns closest point a geometry to a second geometry
shortest_line: returns the shortest possible line joining two
geometries
2016-01-15 12:50:17 +11:00
Nyall Dawson
c0f4fb1466 Followup e48d8b, fix typo 2016-01-15 08:34:42 +11:00
Marco Hugentobler
193e9d7818 Update sip files 2016-01-14 13:46:13 +01:00
Matthias Kuhn
542541007c Add extrude function to QgsGeometry 2016-01-14 12:28:31 +01:00
Juergen E. Fischer
f8f25289d3 spelling fixes 2016-01-14 11:04:44 +01:00
Larry Shaffer
d5bf1045f3 [auth] Ensure ident cert cache is used; move temp file creation to utils 2016-01-13 21:29:10 +01:00
Martin Dobias
b83f6e359a Merge pull request #2665 from wonder-sk/auto-trace
[FEATURE] Tracing of features (digitizing)

Tracing can be now used in various capturing map tools (add feature, add part, ...) including reshape and split tools.

Tracing is simply a new mode for these tools - when tracing is not enabled, the tools work as usual. When tracing is enabled (by clicking the new magnet icon or pressing T key), tools switch to tracing behavior:
- first click on a vertex/edge (must be snapped!) will start tracing - moving mouse on top of the map continuously updates the trace
- next click will confirm the trace and mark start of a new trace Tracing can be enabled/disabled anytime even while digitizing one feature, so it is possible to digitize some parts of the feature with tracing enabled and other parts with tracing disabled.

Tracing respects snapping configuration for the list of traceable layers.

If there are too many features in map display, tracing is disabled to avoid potentially long tracing structure preparation and large memory overhead. After zooming in or disabling some layers the tracing is enabled again.

Internally, things work like this:
- when tracing is requested, linestrings are extracted from vector layers, then noded (using GEOSNode to resolve all intersections) and finally a simple planar graph is built (vertices + edges)
- when tracing, endpoints are temporarily added to the graph (if not equal to one of existing vertices already) and Dijkstra's algorithm is run to get shortest path

Original specs for the curious ones (the interaction with QGIS is slightly improved from what has been specified): http://www.lutraconsulting.co.uk/crowdfunding/autotrace-phase-2/specification.pdf
2016-01-13 12:18:00 +01:00
Matthias Kuhn
4e9afcec4c Expression variable for the currently rendered part
During rendering, two new variables will be available:

  * `geometry_part_count`
  * `geometry_part_num` (1-based index)

Useful to apply different styles to different parts of multipart
features
2016-01-13 08:17:49 +01:00
Nyall Dawson
9dccce87ee Followup 3a1d47
- Fix dialog tab order
- Avoid use of hardcoded enum int conversion
- Remove some unneeded implicit casts
- Doc tweaks
2016-01-13 09:38:18 +11:00
Matthias Kuhn
e351d24a7d More types support for QgsVectorFileWriter 2016-01-12 12:58:47 +01:00
Nyall Dawson
8779091225 Fix failing tests 2016-01-12 08:24:56 +11:00
Nyall Dawson
8b28c040d1 [FEATURE] Add mode to apply label distance from symbol bounds
(only works with Cartographic point label placement). When this
setting is active, the label distance applies from the bounds
of the rendered symbol for a point, instead of the point itself.
It's especially useful when the symbol size isn't fixed, eg if
it's set by a data defined size or when using different symbols
in a categorised renderer.

Sponsored by Andreas Neumann
2016-01-12 08:24:39 +11:00
Nyall Dawson
6499439cc5 Fix failing tests, add tests for ordered placement
Sponsored by Andreas Neumann
2016-01-12 08:24:38 +11:00
Martin Dobias
3883a2e5fc [tracer] added docs and sip files 2016-01-11 20:57:28 +01:00
Hugo Mercier
70f26b66be Merge pull request #2647 from mhugo/vlayer_gui
Virtual layers GUI integration
2016-01-11 12:17:50 +01:00
Radim Blazek
689be029d4 missing sip 2016-01-09 16:33:56 +01:00
Juergen E. Fischer
4e1cf3c081 add missing copyright headers 2016-01-08 21:32:11 +01:00
Juergen E. Fischer
bd6169e1ce spelling fixes 2016-01-08 20:38:43 +01:00
Nyall Dawson
44bf78fa5c Fix Sip coverage test on Debian nightlies 2016-01-08 16:51:18 +11:00
Nyall Dawson
38baaafd05 [FEATURE] Show recent colors in layer right click menus 2016-01-08 16:43:35 +11:00
Hugo Mercier
bbf2137940 Allow to filter joined fields with a virtual layer 2016-01-07 16:34:34 +01:00
Hugo Mercier
7e5915ec79 Allow to embed layers with dependencies 2016-01-07 14:37:23 +01:00
Hugo Mercier
1a1af3788c Rework layer dependencies to work also with layer definition files 2016-01-07 14:03:15 +01:00
Hugo Mercier
020dac0702 Allow to declare layer dependencies on a vector layer 2016-01-07 12:02:30 +01:00
Nyall Dawson
9d63022e4e Merge pull request #2638 from SebDieBln/FixStyleManagerUI
Fix some UI issues in style manager
2016-01-07 11:17:58 +11:00
Hugo Mercier
b46a593e32 Merge pull request #2617 from SebDieBln/FixLayerDefVectorJoins
Make vector joins work within layer-definition-files
2016-01-06 09:50:38 +01:00
Sebastian Dietrich
95e571c3f8 added functions to QgsStyleV2 for getting groups by id 2016-01-06 02:56:30 +01:00
Nyall Dawson
5e4c14cd40 [FEATURE] Control over label rendering order
A new control for setting a label's "z-index" has been added to
the labeling properties dialog. This control (which also accepts
data-defined overrides for individual features) determines the order
in which label are rendered. Label layers with a higher z-index
are rendered on top of labels from a layer with lower z-index.

Additionally, the logic has been tweaks so that if 2 labels have
matching z-indexes, then:
- if they are from the same layer, a smaller label will be drawn
above a larger label
- if they are from different layers, the labels will be drawn in
the same order as the layers themselves (ie respecting the order
set in the legend)

Diagrams can also have their z-index set (but not data defined)
so that the order of labels and diagrams can be controlled.

Note that this does *NOT* allow labels to be drawn below the
features from other layers, it just controls the order in which
labels are drawn on top of all the layer's features.

Fix #13888, #13559
2016-01-05 22:27:22 +11:00
Nyall Dawson
881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +11:00
Nyall Dawson
4cc590c929 Cleanup labeling, avoid some duplicate enums, add docs 2016-01-04 07:23:58 +11:00
Sebastian Dietrich
b2b44ccca9 split generating XML and saving to QLR-file into separate functions
This increases flexibility and is consistent with the loading of a QLR-file.
2016-01-01 21:34:22 +01:00
Nyall Dawson
766bfa1a7f Fix some more old style cast and float comparison warnings 2015-12-31 07:27:58 +11:00
Nyall Dawson
566dd4bd43 Always pass QgsFeatureId by value, not reference
Since it's just a int64, it's faster to pass by value
2015-12-30 22:51:32 +11:00
Juergen E. Fischer
71dc339106 more stl to qt ports and size_t => int fixups 2015-12-26 00:59:09 +01:00
Juergen E. Fischer
8f29f28d5c fix windows build and some warnings 2015-12-24 02:17:59 +01:00
rldhont
a32587bcd1 [FEATURE][QGIS Server] Add short name to layers, groups and project
A number of elements have both a <Name> and a <Title>. The Name is a text string used for machine-to-machine
communication while the Title is for the benefit of humans. For example, a dataset might have the descriptive Title
“Maximum Atmospheric Temperature” and be requested using the abbreviated Name “ATMAX”.

User can already set title for layers, groups and project. OWS name is based on the name used in layer tree. This name is more a label for humans than a name for machine-to-machine communication.

To add the capability to users to define Name as a text string for machine-to-machine communication, this pull-request adds:
* short name line edits to layers properties
* WMS data dialog to layer tree group (short name, title, abstract)
* short name line edits to project properties
* add a regexp validator "^[A-Za-z][A-Za-z0-9\._-]*" to short name line edit accessible through a static method
* add a TreeName element in the fullProjectSettings

If a short name has been set for layers, groups and project it is used by QGIS Sever as the layer name.
2015-12-23 10:03:04 +01:00
Matthias Kuhn
e6a265c103 Merge pull request #2600 from m-kuhn/orderby-renderer
Allow definition of feature rendering order
2015-12-22 17:45:01 +01:00
Matthias Kuhn
52a39fc286 QgsSymbolV2 may not be copied 2015-12-22 16:39:22 +01:00
Matthias Kuhn
168c6f70bc Rename OrderBys -> OrderBy and OrderBy -> OrderByClause
And some sip fixes
2015-12-22 09:12:32 +01:00
Matthias Kuhn
a5f88181f6 Fix fallback orderby and attribute subset
Also properly closes the iterator when a fallback orderby is used
2015-12-22 09:12:32 +01:00
Nyall Dawson
6122f0462d Remove unimplemented QgsSurfaceV2::pointOnSurface method
Was always returning a point not on the surface! (0,0). Use the
GEOS method instead.
2015-12-22 16:50:37 +11:00
rldhont
f7566710af [Doc] Update QgsMapLayer documentation
Add documentation string to 10 QgsMapLayer methods.
2015-12-21 17:33:47 +01:00
Hugo Mercier
e60712e7cf Add a provider for virtual layers 2015-12-18 19:45:58 +02:00
Matthias Kuhn
d96a2748b6 Add Order By Clause 2015-12-18 18:36:43 +01:00
Nyall Dawson
4511cc474e Fix doxygen warning 2015-12-18 16:03:05 +11:00
Matthias Kuhn
de1c319bf6 Implicit sharing for QgsExpression 2015-12-15 13:39:07 +01:00
Nyall Dawson
85eebff69b Avoid some unnecessary object conversion during point rendering 2015-12-15 22:36:49 +11:00
Nyall Dawson
4e18d54555 Tests and fixes for QgsPolygonV2
- Setting exterior ring will force all interior rings to match
dimensionality of exterior ring
- add equality operator
- use correct WKB types for rings when creating polygon from WKB
- segmentize curves when setting exterior ring with curved segments
- fix export to GML2/3 (should use LinearRing, not LineString as
ring element tag)
2015-12-15 22:36:41 +11:00
Nyall Dawson
62f90d0c5e Merge pull request #2569 from SebDieBln/Improve_CrsReadXML
Improve QgsCoordinateReferenceSystem::readXML()
2015-12-12 11:47:32 +11:00
Sebastian Dietrich
2d0be1cf69 Changed the parameter of QgsCoordinateReferenceSystem::readXML() to const
and removed const_cast<> where not needed any longer
2015-12-12 00:05:10 +01:00