Class: QgsProfilePlotRenderer¶
Generates and renders elevation profile plots.
This class has two roles:
Extraction and generation of the raw elevation profiles from a list of
QgsAbstractProfileSourceobjects.Rendering the results
Step 1, involving the generation of the elevation profiles only needs to
occur once. This is done via a call to startGeneration(),
which commences generation of the profiles from each source in a
separate background thread. When the generation is completed for all
sources the generationFinished() signal is emitted.
After the profile is generated, it can be rendered. The rendering step may be undertaken multiple times (e.g. to render to different image sizes or data ranges) without having to re-generate the raw profile data.
Added in version 3.26.
Class Hierarchy¶
Base classes¶
- class qgis.core.QgsProfilePlotRenderer[source]¶
Bases:
QObject- __init__(sources: Iterable[QgsAbstractProfileSource], request: QgsProfileRequest)
Constructor for QgsProfilePlotRenderer, using the provided list of profile
sourcesto generate the results.- Parameters:
sources (Iterable[QgsAbstractProfileSource])
request (QgsProfileRequest)
- asFeatures(self, type: Qgis.ProfileExportType, feedback: QgsFeedback | None = None) List[QgsAbstractProfileResults.Feature]¶
Exports the profile results as a set of features.
Added in version 3.32.
- Parameters:
type (Qgis.ProfileExportType)
feedback (Optional[QgsFeedback] = None)
- Return type:
- cancelGeneration(self)[source]¶
Stop the generation job - does not return until the job has terminated. Does nothing if the generation is not active.
- cancelGenerationWithoutBlocking(self)[source]¶
Triggers cancellation of the generation job without blocking. The generation job will continue to operate until it is able to cancel, at which stage the
generationFinished()signal will be emitted. Does nothing if the generation is not active.
- static defaultSubSectionsSymbol() QgsLineSymbol | None¶
Returns the default line symbol to use for subsections lines.
See also
Added in version 3.44.
- Return type:
Optional[QgsLineSymbol]
- generateSynchronously(self)[source]¶
Generate the profile results synchronously in this thread. The function does not return until the generation is complete.
This is an alternative to ordinary API (using
startGeneration()+ waiting forgenerationFinished()signal). Users are discouraged to use this method unless they have a strong reason for doing it. The synchronous generation blocks the main thread, making the application unresponsive. Also, it is not possible to cancel generation while it is in progress.Added in version 3.30.
- signal generationFinished[source]¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- identify(self, point: QgsProfilePoint, context: QgsProfileIdentifyContext) List[QgsProfileIdentifyResults]¶
Identify results visible at the specified profile
point.identify(self, distanceRange:
QgsDoubleRange, elevationRange:QgsDoubleRange, context:QgsProfileIdentifyContext) -> List[QgsProfileIdentifyResults] Identify results visible within the specified ranges.- Parameters:
point (QgsProfilePoint)
context (QgsProfileIdentifyContext)
- Return type:
- invalidateAllRefinableSources(self)[source]¶
Invalidates previous results from all refinable sources.
- invalidateResults(self, source: QgsAbstractProfileSource | None) bool[source]¶
Invalidates the profile results from the source with matching ID.
The matching stored source will be deleted and replaced with
source.Returns
Trueif results were previously stored for the matching source and have been invalidated.See also
- Parameters:
source (Optional[QgsAbstractProfileSource])
- Return type:
bool
- isActive(self) bool[source]¶
Returns
Trueif the generation job is currently running in background.- Return type:
bool
- regenerateInvalidatedResults(self)[source]¶
Starts a background regeneration of any invalidated results and immediately returns.
Does nothing if the generation is already in progress.
See also
- render(self, context: QgsRenderContext, width: float, height: float, distanceMin: float, distanceMax: float, zMin: float, zMax: float, sourceId: str | None = '')[source]¶
Renders a portion of the profile using the specified render
context.If
sourceIdis empty then all sources will be rendered, otherwise only the matching source will be rendered.- Parameters:
context (QgsRenderContext)
width (float)
height (float)
distanceMin (float)
distanceMax (float)
zMin (float)
zMax (float)
sourceId (Optional[str] = '')
- renderSubsectionsIndicator(self, context: QgsRenderContext, plotArea: QRectF, distanceMin: float, distanceMax: float, zMin: float, zMax: float)[source]¶
Renders the vertices of the profile curve as vertical lines using the specified render
context. The style of the lines the style corresponds to the symbol defined bysetSubsectionsSymbol().See also
Added in version 3.44.
- Parameters:
context (QgsRenderContext)
plotArea (QRectF)
distanceMin (float)
distanceMax (float)
zMin (float)
zMax (float)
- renderToImage(self, width: int, height: int, distanceMin: float, distanceMax: float, zMin: float, zMax: float, sourceId: str | None = '', devicePixelRatio: float = 1) QImage[source]¶
Renders a portion of the profile to an image with the given
widthandheight.If
sourceIdis empty then all sources will be rendered, otherwise only the matching source will be rendered.- Parameters:
width (int)
height (int)
distanceMin (float)
distanceMax (float)
zMin (float)
zMax (float)
sourceId (Optional[str] = '')
devicePixelRatio (float = 1)
- Return type:
QImage
- replaceSource(self, source: QgsAbstractProfileSource | None)[source]¶
Replaces the existing source with matching ID.
The matching stored source will be deleted and replaced with
source.- Parameters:
source (Optional[QgsAbstractProfileSource])
- setContext(self, context: QgsProfileGenerationContext)[source]¶
Sets the
contextin which the profile generation will occur.Depending on the sources present, this may trigger automatically a regeneration of results.
- Parameters:
context (QgsProfileGenerationContext)
- setSubsectionsSymbol(self, symbol: QgsLineSymbol | None)[source]¶
Sets the
symbolused to draw the subsections. IfsymbolisNone, the subsections are not drawn. Ownership ofsymbolis transferred.See also
Added in version 3.44.
- Parameters:
symbol (Optional[QgsLineSymbol])
- snapPoint(self, point: QgsProfilePoint, context: QgsProfileSnapContext) QgsProfileSnapResult[source]¶
Snap a
pointto the results.- Parameters:
point (QgsProfilePoint)
context (QgsProfileSnapContext)
- Return type:
- sourceIds(self) List[str][source]¶
Returns the ordered list of source IDs for the sources used by the renderer.
- Return type:
List[str]
- startGeneration(self)[source]¶
Start the generation job and immediately return. Does nothing if the generation is already in progress.
- subsectionsSymbol(self) QgsLineSymbol | None[source]¶
Returns the line symbol used to draw the subsections.
See also
Added in version 3.44.
- Return type:
Optional[QgsLineSymbol]
- zRange(self) QgsDoubleRange[source]¶
Returns the limits of the retrieved elevation values.
- Return type: