mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -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
324 lines
11 KiB
Plaintext
324 lines
11 KiB
Plaintext
%Module(name=qgis._core,
|
|
version=0,
|
|
keyword_arguments="Optional")
|
|
|
|
%Feature QT5_SUPPORT
|
|
|
|
%Import QtXml/QtXmlmod.sip
|
|
%Import QtNetwork/QtNetworkmod.sip
|
|
%Import QtSql/QtSqlmod.sip
|
|
|
|
%If (QT5_SUPPORT)
|
|
%Import QtPrintSupport/QtPrintSupportmod.sip
|
|
%Import QtWidgets/QtWidgetsmod.sip
|
|
%End
|
|
|
|
%Include conversions.sip
|
|
%Include qgsexception.sip
|
|
|
|
%Include qgis.sip
|
|
|
|
%Include qgstransaction.sip
|
|
%Include qgsapplication.sip
|
|
%Include qgsattributeaction.sip
|
|
%Include qgsbrowsermodel.sip
|
|
%Include qgsclipper.sip
|
|
%Include qgscolorscheme.sip
|
|
%Include qgscolorschemeregistry.sip
|
|
%Include qgscontexthelp.sip
|
|
%Include qgscoordinatereferencesystem.sip
|
|
%Include qgscoordinatetransform.sip
|
|
%Include qgsconditionalstyle.sip
|
|
%Include qgscredentials.sip
|
|
%Include qgscrscache.sip
|
|
%Include qgsdatadefined.sip
|
|
%Include qgsdataitem.sip
|
|
%Include qgsdataitemprovider.sip
|
|
%Include qgsdataitemproviderregistry.sip
|
|
%Include qgsdataprovider.sip
|
|
%Include qgsdatasourceuri.sip
|
|
%Include qgsdatumtransformstore.sip
|
|
%Include qgsdbfilterproxymodel.sip
|
|
%Include qgsdistancearea.sip
|
|
%Include qgseditformconfig.sip
|
|
%Include qgseditorwidgetconfig.sip
|
|
%Include qgserror.sip
|
|
%Include qgsexpression.sip
|
|
%Include qgsexpressioncontext.sip
|
|
%Include qgsfeature.sip
|
|
%Include qgsfeatureiterator.sip
|
|
%Include qgsfeaturerequest.sip
|
|
%Include qgsfeaturefilterprovider.sip
|
|
%Include qgsfield.sip
|
|
%Include qgsgeometryvalidator.sip
|
|
%Include qgsgeometrysimplifier.sip
|
|
%Include qgshistogram.sip
|
|
%Include qgsmaptopixelgeometrysimplifier.sip
|
|
%Include qgsgml.sip
|
|
%Include qgsgmlschema.sip
|
|
%If(!QT5_SUPPORT)
|
|
%Include qgshttptransaction.sip
|
|
%End
|
|
%Include qgslabel.sip
|
|
%Include qgslabelattributes.sip
|
|
%Include qgslabelsearchtree.sip
|
|
%Include qgslegendrenderer.sip
|
|
%Include qgslegendsettings.sip
|
|
%Include qgslogger.sip
|
|
%Include qgsmaphittest.sip
|
|
%Include qgsmaplayer.sip
|
|
%Include qgsmaplayerlegend.sip
|
|
%Include qgsmaplayerregistry.sip
|
|
%Include qgsmaplayerrenderer.sip
|
|
%Include qgsmaplayerstylemanager.sip
|
|
%Include qgsmaprenderer.sip
|
|
%Include qgsmaprenderercache.sip
|
|
%Include qgsmaprenderercustompainterjob.sip
|
|
%Include qgsmaprendererjob.sip
|
|
%Include qgsmaprendererparalleljob.sip
|
|
%Include qgsmaprenderersequentialjob.sip
|
|
%Include qgsmapsettings.sip
|
|
%Include qgsmaptopixel.sip
|
|
%Include qgsmapunitscale.sip
|
|
%Include qgsmessagelog.sip
|
|
%Include qgsmessageoutput.sip
|
|
%Include qgsmimedatautils.sip
|
|
%Include qgsmultirenderchecker.sip
|
|
%Include qgsnetworkaccessmanager.sip
|
|
%Include qgsnetworkcontentfetcher.sip
|
|
%Include qgsobjectcustomproperties.sip
|
|
%Include qgsofflineediting.sip
|
|
%Include qgsogcutils.sip
|
|
%Include qgsowsconnection.sip
|
|
%Include qgspaintenginehack.sip
|
|
%Include qgspallabeling.sip
|
|
%Include qgspluginlayer.sip
|
|
%Include qgspluginlayerregistry.sip
|
|
%Include qgspoint.sip
|
|
%Include qgspointlocator.sip
|
|
%Include qgsproject.sip
|
|
%Include qgsprojectproperty.sip
|
|
%Include qgsprojectversion.sip
|
|
%Include qgsprovidercountcalcevent.sip
|
|
%Include qgsproviderextentcalcevent.sip
|
|
%Include qgsprovidermetadata.sip
|
|
%Include qgsproviderregistry.sip
|
|
%Include qgspythonrunner.sip
|
|
%Include qgsrectangle.sip
|
|
%Include qgsrelation.sip
|
|
%Include qgsrelationmanager.sip
|
|
%Include qgsrenderchecker.sip
|
|
%Include qgsrendercontext.sip
|
|
%Include qgsrunprocess.sip
|
|
%Include qgsscalecalculator.sip
|
|
%Include qgsscaleexpression.sip
|
|
%Include qgsscaleutils.sip
|
|
%Include qgssimplifymethod.sip
|
|
%Include qgssnapper.sip
|
|
%Include qgssnappingutils.sip
|
|
%Include qgsspatialindex.sip
|
|
%Include qgsstatisticalsummary.sip
|
|
%Include qgsstringutils.sip
|
|
%Include qgstolerance.sip
|
|
%Include qgstracer.sip
|
|
%Include qgsvectordataprovider.sip
|
|
%Include qgsvectorfilewriter.sip
|
|
%Include qgsvectorlayer.sip
|
|
%Include qgsvectorlayercache.sip
|
|
%Include qgsvectorlayereditbuffer.sip
|
|
%Include qgsvectorlayereditpassthrough.sip
|
|
%Include qgsvectorlayerimport.sip
|
|
%Include qgsvectorlayerjoinbuffer.sip
|
|
%Include qgsvectorlayerundocommand.sip
|
|
%Include qgsvectorsimplifymethod.sip
|
|
%Include qgsfontutils.sip
|
|
%Include qgsdartmeasurement.sip
|
|
%Include qgsexpressionfieldbuffer.sip
|
|
|
|
%Include qgscachedfeatureiterator.sip
|
|
%Include qgscacheindex.sip
|
|
%Include qgscacheindexfeatureid.sip
|
|
%Include qgsfeaturestore.sip
|
|
%Include qgsgeometrycache.sip
|
|
%Include qgsprojectfiletransform.sip
|
|
%Include qgsvectorlayereditutils.sip
|
|
%Include qgsvectorlayerfeatureiterator.sip
|
|
%Include qgsvisibilitypresetcollection.sip
|
|
%Include qgslayerdefinition.sip
|
|
%Include qgsvirtuallayerdefinition.sip
|
|
%Include qgsvirtuallayerdefinitionutils.sip
|
|
%Include qgsxmlutils.sip
|
|
|
|
%Include auth/qgsauthcertutils.sip
|
|
%Include auth/qgsauthconfig.sip
|
|
// %Include auth/qgsauthcrypto.sip
|
|
%Include auth/qgsauthmanager.sip
|
|
%Include auth/qgsauthmethod.sip
|
|
|
|
%Include composer/qgsaddremoveitemcommand.sip
|
|
%Include composer/qgsaddremovemultiframecommand.sip
|
|
%Include composer/qgscomposerarrow.sip
|
|
%Include composer/qgscomposerattributetable.sip
|
|
%Include composer/qgscomposerattributetablemodel.sip
|
|
%Include composer/qgscomposerattributetablemodelv2.sip
|
|
%Include composer/qgscomposerattributetablev2.sip
|
|
%Include composer/qgscomposerframe.sip
|
|
%Include composer/qgscomposerhtml.sip
|
|
%Include composer/qgscomposerobject.sip
|
|
%Include composer/qgscomposeritem.sip
|
|
%Include composer/qgscomposeritemcommand.sip
|
|
%Include composer/qgscomposeritemgroup.sip
|
|
%Include composer/qgscomposerlabel.sip
|
|
%Include composer/qgscomposerlegend.sip
|
|
%Include composer/qgscomposerlegenditem.sip
|
|
%Include composer/qgscomposermap.sip
|
|
%Include composer/qgscomposermapgrid.sip
|
|
%Include composer/qgscomposermapitem.sip
|
|
%Include composer/qgscomposermapoverview.sip
|
|
%Include composer/qgscomposermultiframe.sip
|
|
%Include composer/qgscomposermultiframecommand.sip
|
|
%Include composer/qgscomposerpicture.sip
|
|
%Include composer/qgscomposerscalebar.sip
|
|
%Include composer/qgscomposershape.sip
|
|
%Include composer/qgscomposertable.sip
|
|
%Include composer/qgscomposertablecolumn.sip
|
|
%Include composer/qgscomposertablev2.sip
|
|
%Include composer/qgscomposerutils.sip
|
|
%Include composer/qgscomposition.sip
|
|
%Include composer/qgscomposermodel.sip
|
|
%Include composer/qgsatlascomposition.sip
|
|
%Include composer/qgsdoubleboxscalebarstyle.sip
|
|
%Include composer/qgslegendmodel.sip
|
|
%Include composer/qgsnumericscalebarstyle.sip
|
|
%Include composer/qgspaperitem.sip
|
|
%Include composer/qgsscalebarstyle.sip
|
|
%Include composer/qgssingleboxscalebarstyle.sip
|
|
%Include composer/qgsticksscalebarstyle.sip
|
|
%Include composer/qgscomposertexttable.sip
|
|
%Include composer/qgscomposereffect.sip
|
|
%Include composer/qgscomposerlegendstyle.sip
|
|
|
|
%Include qgsdiagramrendererv2.sip
|
|
%Include diagram/qgsdiagram.sip
|
|
%Include diagram/qgshistogramdiagram.sip
|
|
%Include diagram/qgspiediagram.sip
|
|
%Include diagram/qgstextdiagram.sip
|
|
|
|
%Include effects/qgsimageoperation.sip
|
|
%Include effects/qgspainteffect.sip
|
|
%Include effects/qgseffectstack.sip
|
|
%Include effects/qgsblureffect.sip
|
|
%Include effects/qgsshadoweffect.sip
|
|
%Include effects/qgsgloweffect.sip
|
|
%Include effects/qgstransformeffect.sip
|
|
%Include effects/qgscoloreffect.sip
|
|
%Include effects/qgspainteffectregistry.sip
|
|
|
|
%Include gps/qgsgpsconnection.sip
|
|
%Include gps/qgsgpsconnectionregistry.sip
|
|
%Include gps/qgsgpsdconnection.sip
|
|
%Include gps/qgsgpsdetector.sip
|
|
%Include gps/qgsnmeaconnection.sip
|
|
%Include gps/qgsqtlocationconnection.sip
|
|
|
|
%Include layertree/qgslayertree.sip
|
|
%Include layertree/qgslayertreegroup.sip
|
|
%Include layertree/qgslayertreelayer.sip
|
|
%Include layertree/qgslayertreemodel.sip
|
|
%Include layertree/qgslayertreemodellegendnode.sip
|
|
%Include layertree/qgslayertreenode.sip
|
|
%Include layertree/qgslayertreeregistrybridge.sip
|
|
%Include layertree/qgslayertreeutils.sip
|
|
|
|
%Include raster/qgsraster.sip
|
|
%Include raster/qgscliptominmaxenhancement.sip
|
|
%Include raster/qgscolorrampshader.sip
|
|
%Include raster/qgscontrastenhancement.sip
|
|
%Include raster/qgscontrastenhancementfunction.sip
|
|
%Include raster/qgslinearminmaxenhancement.sip
|
|
%Include raster/qgslinearminmaxenhancementwithclip.sip
|
|
%Include raster/qgspseudocolorshader.sip
|
|
%Include raster/qgsrasterbandstats.sip
|
|
%Include raster/qgsrasterblock.sip
|
|
%Include raster/qgsrasterchecker.sip
|
|
%Include raster/qgsrasterdataprovider.sip
|
|
%Include raster/qgsrasterfilewriter.sip
|
|
%Include raster/qgsrasterhistogram.sip
|
|
%Include raster/qgsrasteridentifyresult.sip
|
|
%Include raster/qgsrasterinterface.sip
|
|
%Include raster/qgsrasteriterator.sip
|
|
%Include raster/qgsrasterlayer.sip
|
|
%Include raster/qgsrasternuller.sip
|
|
%Include raster/qgsrasterpipe.sip
|
|
%Include raster/qgsrasterprojector.sip
|
|
%Include raster/qgsrasterpyramid.sip
|
|
%Include raster/qgsrasterrange.sip
|
|
%Include raster/qgsrasterrenderer.sip
|
|
%Include raster/qgsrasterresamplefilter.sip
|
|
%Include raster/qgsrasterresampler.sip
|
|
%Include raster/qgsrastershader.sip
|
|
%Include raster/qgsrastershaderfunction.sip
|
|
%Include raster/qgsrastertransparency.sip
|
|
%Include raster/qgsrasterviewport.sip
|
|
%Include raster/qgsbilinearrasterresampler.sip
|
|
%Include raster/qgssinglebandcolordatarenderer.sip
|
|
%Include raster/qgssinglebandpseudocolorrenderer.sip
|
|
%Include raster/qgssinglebandgrayrenderer.sip
|
|
%Include raster/qgspalettedrasterrenderer.sip
|
|
%Include raster/qgscubicrasterresampler.sip
|
|
%Include raster/qgsmultibandcolorrenderer.sip
|
|
%Include raster/qgsbrightnesscontrastfilter.sip
|
|
%Include raster/qgshuesaturationfilter.sip
|
|
%Include raster/qgsrasterdrawer.sip
|
|
|
|
%Include symbology-ng/qgsstylev2.sip
|
|
%Include symbology-ng/qgssvgcache.sip
|
|
%Include symbology-ng/qgssymbolv2.sip
|
|
%Include symbology-ng/qgscolorbrewerpalette.sip
|
|
%Include symbology-ng/qgscptcityarchive.sip
|
|
%Include symbology-ng/qgsvectorcolorrampv2.sip
|
|
|
|
%Include symbology-ng/qgscategorizedsymbolrendererv2.sip
|
|
%Include symbology-ng/qgsgraduatedsymbolrendererv2.sip
|
|
%Include symbology-ng/qgslegendsymbolitemv2.sip
|
|
%Include symbology-ng/qgssinglesymbolrendererv2.sip
|
|
%Include symbology-ng/qgspointdisplacementrenderer.sip
|
|
%Include symbology-ng/qgsrulebasedrendererv2.sip
|
|
%Include symbology-ng/qgsinvertedpolygonrenderer.sip
|
|
%Include symbology-ng/qgsheatmaprenderer.sip
|
|
%Include symbology-ng/qgsrendererv2.sip
|
|
%Include symbology-ng/qgsrendererv2registry.sip
|
|
|
|
%Include symbology-ng/qgssymbollayerv2.sip
|
|
%Include symbology-ng/qgssymbollayerv2utils.sip
|
|
%Include symbology-ng/qgsvectorfieldsymbollayer.sip
|
|
%Include symbology-ng/qgsellipsesymbollayerv2.sip
|
|
%Include symbology-ng/qgsfillsymbollayerv2.sip
|
|
%Include symbology-ng/qgslinesymbollayerv2.sip
|
|
%Include symbology-ng/qgsmarkersymbollayerv2.sip
|
|
%Include symbology-ng/qgssymbollayerv2registry.sip
|
|
%Include symbology-ng/qgsgeometrygeneratorsymbollayerv2.sip
|
|
|
|
%Include symbology-ng/qgssymbologyv2conversion.sip
|
|
|
|
%Include dxf/qgsdxfexport.sip
|
|
|
|
%Include geometry/qgsgeometry.sip
|
|
%Include geometry/qgsabstractgeometryv2.sip
|
|
%Include geometry/qgscircularstringv2.sip
|
|
%Include geometry/qgscompoundcurvev2.sip
|
|
%Include geometry/qgscurvepolygonv2.sip
|
|
%Include geometry/qgscurvev2.sip
|
|
%Include geometry/qgsgeometrycollectionv2.sip
|
|
%Include geometry/qgsgeometryengine.sip
|
|
%Include geometry/qgslinestringv2.sip
|
|
%Include geometry/qgsmulticurvev2.sip
|
|
%Include geometry/qgsmultilinestringv2.sip
|
|
%Include geometry/qgsmultipointv2.sip
|
|
%Include geometry/qgsmultipolygonv2.sip
|
|
%Include geometry/qgsmultisurfacev2.sip
|
|
%Include geometry/qgspointv2.sip
|
|
%Include geometry/qgspolygonv2.sip
|
|
%Include geometry/qgssurfacev2.sip
|
|
%Include geometry/qgswkbtypes.sip
|