mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
[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
249 lines
8.8 KiB
Plaintext
249 lines
8.8 KiB
Plaintext
%Module(name=qgis._gui,
|
|
version=0,
|
|
keyword_arguments="Optional")
|
|
|
|
%Feature HAVE_QSCI_SIP
|
|
|
|
%Import core/core.sip
|
|
|
|
%Import QtCore/QtCoremod.sip
|
|
%Import QtGui/QtGuimod.sip
|
|
%Import QtXml/QtXmlmod.sip
|
|
|
|
%If (HAVE_QSCI_SIP)
|
|
%If (!QT5_SUPPORT)
|
|
%Import Qsci/qscimod4.sip
|
|
%End
|
|
%If (QT5_SUPPORT)
|
|
%Import Qsci/qscimod5.sip
|
|
%End
|
|
%End
|
|
|
|
%Include qgsblendmodecombobox.sip
|
|
|
|
%Include qgisinterface.sip
|
|
%Include qgsactionmenu.sip
|
|
%Include qgsannotationitem.sip
|
|
%Include qgsadvanceddigitizingcanvasitem.sip
|
|
%Include qgsadvanceddigitizingdockwidget.sip
|
|
%Include qgsattributeeditor.sip
|
|
%Include qgsattributeeditorcontext.sip
|
|
%Include qgsattributedialog.sip
|
|
%Include qgsattributeform.sip
|
|
%Include qgsattributeforminterface.sip
|
|
%Include qgsattributetypeloaddialog.sip
|
|
%Include qgsbrowsertreeview.sip
|
|
%Include qgsbusyindicatordialog.sip
|
|
%Include qgscollapsiblegroupbox.sip
|
|
%If (HAVE_QSCI_SIP)
|
|
%Include qgscodeeditor.sip
|
|
%Include qgscodeeditorpython.sip
|
|
%Include qgscodeeditorsql.sip
|
|
%Include qgscodeeditorhtml.sip
|
|
%Include qgscodeeditorcss.sip
|
|
%End
|
|
%Include qgscharacterselectdialog.sip
|
|
%Include qgscolorbutton.sip
|
|
%Include qgscolorbuttonv2.sip
|
|
%Include qgscolordialog.sip
|
|
%Include qgscolorschemelist.sip
|
|
%Include qgscolorswatchgrid.sip
|
|
%Include qgscolorwidgets.sip
|
|
%Include qgscomposerruler.sip
|
|
%Include qgscomposerview.sip
|
|
%Include qgscredentialdialog.sip
|
|
%Include qgsdatadefinedbutton.sip
|
|
%Include qgsdetaileditemdata.sip
|
|
%Include qgsdetaileditemdelegate.sip
|
|
%Include qgsdetaileditemwidget.sip
|
|
%Include qgsdial.sip
|
|
%Include qgsdialog.sip
|
|
%Include qgsencodingfiledialog.sip
|
|
%Include qgserrordialog.sip
|
|
%Include qgsexpressionbuilderdialog.sip
|
|
%Include qgsexpressionbuilderwidget.sip
|
|
%Include qgsexpressionhighlighter.sip
|
|
%Include qgsexpressionselectiondialog.sip
|
|
%Include qgsextentgroupbox.sip
|
|
%Include qgsexternalresourcewidget.sip
|
|
%Include qgsfeatureselectiondlg.sip
|
|
%Include qgsfieldcombobox.sip
|
|
%Include qgsfieldexpressionwidget.sip
|
|
%Include qgsfieldmodel.sip
|
|
%Include qgsfieldproxymodel.sip
|
|
%Include qgsfieldvalidator.sip
|
|
%Include qgsfiledropedit.sip
|
|
%Include qgsfilepickerwidget.sip
|
|
%Include qgsfilterlineedit.sip
|
|
%Include qgsformannotationitem.sip
|
|
%Include qgsgenericprojectionselector.sip
|
|
%Include qgsgeometryrubberband.sip
|
|
%Include qgsgroupwmsdatadialog.sip
|
|
%Include qgshighlight.sip
|
|
%Include qgshistogramwidget.sip
|
|
%Include qgshtmlannotationitem.sip
|
|
%Include qgsidentifymenu.sip
|
|
%Include qgslegendfilterbutton.sip
|
|
%Include qgslegendinterface.sip
|
|
%Include qgslonglongvalidator.sip
|
|
%Include qgsludialog.sip
|
|
%Include qgsmanageconnectionsdialog.sip
|
|
%Include qgsmapcanvas.sip
|
|
%Include qgsmapcanvasitem.sip
|
|
%Include qgsmapcanvasmap.sip
|
|
%Include qgsmapcanvassnapper.sip
|
|
%Include qgsmapcanvassnappingutils.sip
|
|
%Include qgsmapcanvastracer.sip
|
|
%Include qgsmaplayeractionregistry.sip
|
|
%Include qgsmaplayercombobox.sip
|
|
%Include qgsmaplayermodel.sip
|
|
%Include qgsmaplayerproxymodel.sip
|
|
%Include qgsmapmouseevent.sip
|
|
%Include qgsmapoverviewcanvas.sip
|
|
%Include qgsmaptip.sip
|
|
%Include qgsmaptool.sip
|
|
%Include qgsmaptooladvanceddigitizing.sip
|
|
%Include qgsmaptoolcapture.sip
|
|
%Include qgsmaptooledit.sip
|
|
%Include qgsmaptoolemitpoint.sip
|
|
%Include qgsmaptoolidentify.sip
|
|
%Include qgsmaptoolidentifyfeature.sip
|
|
%Include qgsmaptoolpan.sip
|
|
%Include qgsmaptooltouch.sip
|
|
%Include qgsmaptoolzoom.sip
|
|
%Include qgsmessagebar.sip
|
|
%Include qgsmessagebaritem.sip
|
|
%Include qgsmessagelogviewer.sip
|
|
%Include qgsmessageviewer.sip
|
|
%Include qgsnewhttpconnection.sip
|
|
%Include qgsnewmemorylayerdialog.sip
|
|
%Include qgsnewnamedialog.sip
|
|
%Include qgsnewvectorlayerdialog.sip
|
|
%Include qgsnumericsortlistviewitem.sip
|
|
%Include qgsoptionsdialogbase.sip
|
|
%Include qgsorderbydialog.sip
|
|
%Include qgsowssourceselect.sip
|
|
%Include qgspixmaplabel.sip
|
|
%Include qgspluginmanagerinterface.sip
|
|
%Include qgsprevieweffect.sip
|
|
%Include qgsprojectbadlayerguihandler.sip
|
|
%Include qgsprojectionselectionwidget.sip
|
|
%Include qgsprojectionselector.sip
|
|
%Include qgsquerybuilder.sip
|
|
%Include qgsrasterformatsaveoptionswidget.sip
|
|
%Include qgsrasterlayersaveasdialog.sip
|
|
%Include qgsrasterpyramidsoptionswidget.sip
|
|
%Include qgsrelationeditorwidget.sip
|
|
%Include qgsrubberband.sip
|
|
%Include qgsscalecombobox.sip
|
|
%Include qgsscalerangewidget.sip
|
|
%Include qgsscalevisibilitydialog.sip
|
|
%Include qgsscalewidget.sip
|
|
%Include qgssearchquerybuilder.sip
|
|
%Include qgsslider.sip
|
|
%Include qgssublayersdialog.sip
|
|
%Include qgssvgannotationitem.sip
|
|
%Include qgstextannotationitem.sip
|
|
%Include qgsunitselectionwidget.sip
|
|
%Include qgsuserinputdockwidget.sip
|
|
%Include qgsvariableeditorwidget.sip
|
|
%Include qgsvectorlayertools.sip
|
|
%Include qgsvertexmarker.sip
|
|
|
|
%Include attributetable/qgsattributetabledelegate.sip
|
|
%Include attributetable/qgsattributetablefiltermodel.sip
|
|
%Include attributetable/qgsattributetablemodel.sip
|
|
%Include attributetable/qgsattributetableview.sip
|
|
%Include attributetable/qgsdualview.sip
|
|
%Include attributetable/qgsfeaturelistmodel.sip
|
|
%Include attributetable/qgsfeaturelistview.sip
|
|
%Include attributetable/qgsfeaturelistviewdelegate.sip
|
|
%Include attributetable/qgsfeaturemodel.sip
|
|
%Include attributetable/qgsfeatureselectionmodel.sip
|
|
%Include attributetable/qgsfieldconditionalformatwidget.sip
|
|
%Include attributetable/qgsifeatureselectionmanager.sip
|
|
|
|
%Include auth/qgsauthauthoritieseditor.sip
|
|
%Include auth/qgsauthcertificateinfo.sip
|
|
%Include auth/qgsauthcertificatemanager.sip
|
|
%Include auth/qgsauthcerttrustpolicycombobox.sip
|
|
%Include auth/qgsauthconfigeditor.sip
|
|
%Include auth/qgsauthconfigselect.sip
|
|
%Include auth/qgsautheditorwidgets.sip
|
|
%Include auth/qgsauthidentitieseditor.sip
|
|
%Include auth/qgsauthimportcertdialog.sip
|
|
%Include auth/qgsauthimportidentitydialog.sip
|
|
%Include auth/qgsauthmethodedit.sip
|
|
%Include auth/qgsauthserverseditor.sip
|
|
%Include auth/qgsauthsslconfigwidget.sip
|
|
%Include auth/qgsauthsslerrorsdialog.sip
|
|
%Include auth/qgsauthsslimportdialog.sip
|
|
%Include auth/qgsauthtrustedcasdialog.sip
|
|
|
|
%Include layertree/qgscustomlayerorderwidget.sip
|
|
%Include layertree/qgslayertreemapcanvasbridge.sip
|
|
%Include layertree/qgslayertreeview.sip
|
|
%Include layertree/qgslayertreeviewdefaultactions.sip
|
|
|
|
%Include raster/qgsmultibandcolorrendererwidget.sip
|
|
%Include raster/qgspalettedrendererwidget.sip
|
|
%Include raster/qgsrasterhistogramwidget.sip
|
|
%Include raster/qgsrasterminmaxwidget.sip
|
|
%Include raster/qgsrasterrendererwidget.sip
|
|
%Include raster/qgssinglebandgrayrendererwidget.sip
|
|
%Include raster/qgssinglebandpseudocolorrendererwidget.sip
|
|
|
|
%Include symbology-ng/characterwidget.sip
|
|
%Include symbology-ng/qgsbrushstylecombobox.sip
|
|
%Include symbology-ng/qgscategorizedsymbolrendererv2widget.sip
|
|
%Include symbology-ng/qgscolorrampcombobox.sip
|
|
%Include symbology-ng/qgscptcitycolorrampv2dialog.sip
|
|
%Include symbology-ng/qgsdashspacedialog.sip
|
|
%Include symbology-ng/qgsdatadefinedsymboldialog.sip
|
|
%Include symbology-ng/qgsellipsesymbollayerv2widget.sip
|
|
%Include symbology-ng/qgsgraduatedhistogramwidget.sip
|
|
%Include symbology-ng/qgsgraduatedsymbolrendererv2widget.sip
|
|
%Include symbology-ng/qgsheatmaprendererwidget.sip
|
|
%Include symbology-ng/qgsinvertedpolygonrendererwidget.sip
|
|
%Include symbology-ng/qgslayerpropertieswidget.sip
|
|
%Include symbology-ng/qgspenstylecombobox.sip
|
|
%Include symbology-ng/qgspointdisplacementrendererwidget.sip
|
|
%Include symbology-ng/qgsrendererv2propertiesdialog.sip
|
|
%Include symbology-ng/qgsrendererv2widget.sip
|
|
%Include symbology-ng/qgsrulebasedrendererv2widget.sip
|
|
%Include symbology-ng/qgssinglesymbolrendererv2widget.sip
|
|
%Include symbology-ng/qgssizescalewidget.sip
|
|
%Include symbology-ng/qgssmartgroupeditordialog.sip
|
|
%Include symbology-ng/qgsstylev2exportimportdialog.sip
|
|
%Include symbology-ng/qgsstylev2groupselectiondialog.sip
|
|
%Include symbology-ng/qgsstylev2managerdialog.sip
|
|
%Include symbology-ng/qgssvgselectorwidget.sip
|
|
%Include symbology-ng/qgssymbollayerv2widget.sip
|
|
%Include symbology-ng/qgssymbollevelsv2dialog.sip
|
|
%Include symbology-ng/qgssymbolslistwidget.sip
|
|
%Include symbology-ng/qgssymbolv2selectordialog.sip
|
|
%Include symbology-ng/qgsvectorcolorbrewercolorrampv2dialog.sip
|
|
%Include symbology-ng/qgsvectorfieldsymbollayerwidget.sip
|
|
%Include symbology-ng/qgsvectorgradientcolorrampv2dialog.sip
|
|
%Include symbology-ng/qgsvectorrandomcolorrampv2dialog.sip
|
|
|
|
%Include effects/qgseffectdrawmodecombobox.sip
|
|
%Include effects/qgseffectstackpropertieswidget.sip
|
|
%Include effects/qgspainteffectpropertieswidget.sip
|
|
%Include effects/qgspainteffectwidget.sip
|
|
|
|
%Include editorwidgets/core/qgseditorconfigwidget.sip
|
|
%Include editorwidgets/core/qgseditorwidgetfactory.sip
|
|
%Include editorwidgets/core/qgseditorwidgetregistry.sip
|
|
%Include editorwidgets/core/qgseditorwidgetwrapper.sip
|
|
%Include editorwidgets/core/qgssearchwidgetwrapper.sip
|
|
%Include editorwidgets/core/qgswidgetwrapper.sip
|
|
%Include editorwidgets/qgsdatetimeedit.sip
|
|
%Include editorwidgets/qgsdoublespinbox.sip
|
|
%Include editorwidgets/qgsrelationreferencewidget.sip
|
|
%Include editorwidgets/qgsrelationreferencewidgetwrapper.sip
|
|
%Include editorwidgets/qgsrelationwidgetwrapper.sip
|
|
%Include editorwidgets/qgsspinbox.sip
|
|
|
|
%Include layertree/qgslayertreeview.sip
|