[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
- Main C++ core and gui classes and desktop app integration
- Support for authentication method plugins
- Does not contain any integration with service connections
This commit adds a new framework for implementing paint effects, which
modify the results of QPainter operations to apply visual effects
such as drop shadows and blurs.
The initial implementation allows for effects to be applied to entire
layers and individual symbol layers.
Included are a drop shadow, inner shadow, blur, inner glow, outer glow,
colorise and transform effect. A "stack" effect is also implemented
which allows other paint effects to be combined in various ways.
Sponsored by hundreds of generous kickstarter contributors!
this integrates advanced digitizing tools aka CAD tools in QGIS application and basically a port of CADinput plugin
* new class QgsMapToolAdvancedDigitizing shall be subsclassed if adv. digit. tools could be used in a map tool
* QgsAdvancedDigitizingDockWidget handles the interaction with the user and also perform the constraints (filters events)
* QgsAdvancedDigitizingCanvasItem paints construction lines on the canvas
it's a Frankenstein's monster of the best bits of lots of other color
picker implementations. Features include:
- Sliders for hue, saturation, value, red, green, blue color components
- Alpha slider
- Option to copy/paste html color codes (in a variety of formats)
- Before/after color preview, with alpha preview
- Interactive 2D color ramp widget
- Hue wheel/triangle widget
- Editable color swatch lists
- Live color sampler with option to sample over a set radius
- Supports interaction with other apps via drag and drop of colors (OS support
dependant)
- Option to disable the dialog and use the native picker dialog instead (TODO:
make the dialog so awesome that even @dakcarto switches across...)
Credit for icons goes to 3nids!