Class: Qgs3DMapSettings¶
-
class
qgis.3d.
Qgs3DMapSettings
¶ Bases:
PyQt5.QtCore.QObject
,QgsTemporalRangeObject
Constructor for Qgs3DMapSettings
Qgs3DMapSettings(other: Qgs3DMapSettings) Copy constructor
Definition of the world
Methods
Returns background color of the 3D map view
Returns coordinate reference system used in the 3D scene
Returns the camera lens’ field of view
Returns whether skybox is enabled
Returns whether terrain shading is enabled.
Returns the list of map layers to be rendered as a texture of the terrain
Returns pointer to the collection of map themes.
Returns resolution (in pixels) of the texture of a terrain tile.
Converts map coordinates to 3D world coordinates (applies offset and turns (x,y,z) into (x,-z,y))
Returns maximum ground error of terrain tiles in world units.
Returns maximum allowed screen error of terrain tiles in pixels.
Returns coordinates in map CRS at which 3D scene has origin (0,0,0)
Returns DPI used for conversion between real world units (e.g.
Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g.
Returns list of point lights defined in the scene
Reads configuration from a DOM element previously written by
writeXml()
Returns list of extra 3D renderers
Resolves references to other objects (map layers) after the call to
readXml()
Returns color used for selected features
Sets background color of the 3D map view
Sets coordinate reference system used in the 3D scene
Sets the camera lens’ field of view
Sets the list of map layers to be rendered as a texture of the terrain
Sets pointer to the collection of map themes.
Sets resolution (in pixels) of the texture of a terrain tile
Returns maximum ground error of terrain tiles in world units.
Sets maximum allowed screen error of terrain tiles in pixels.
Sets coordinates in map CRS at which our 3D world has origin (0,0,0)
Sets DPI used for conversion between real world units (e.g.
Sets the path
resolver
for conversion between relative and absolute paths during rendering operations, e.g.Sets list of point lights defined in the scene
Sets list of extra 3D renderers to use in the scene.
Sets color used for selected features
Sets whether to show camera’s view center as a sphere (for debugging)
Sets whether to display labels on terrain tiles
Sets whether to display bounding boxes of terrain tiles (for debugging)
Sets whether to display extra tile info on top of terrain tiles (for debugging)
Sets skybox configuration.
Sets name of the map theme.
Sets whether terrain shading is enabled.
Sets terrain shading material.
Sets vertical scale (exaggeration) of terrain (1 = true scale, > 1 = hills get more pronounced)
Sets the coordinate transform
context
, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.Returns whether to show camera’s view center as a sphere (for debugging)
Returns whether to display labels on terrain tiles
Returns whether to display bounding boxes of terrain tiles (for debugging)
Returns whether to display extra tile info on top of terrain tiles (for debugging)
Returns base part of filenames of skybox (see
setSkybox()
)Returns extension part of filenames of skybox (see
setSkybox()
)Returns name of the map theme (from the active project) that will be used for terrain’s texture.
Returns terrain shading material.
Returns vertical scale (exaggeration) of terrain
Returns the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
Converts 3D world coordinates to map coordinates (applies offset and turns (x,y,z) into (x,-z,y))
Writes configuration to a DOM element, to be used later with
readXml()
Signals
Emitted when the background color has changed [signal]
Emitted when the camera lens field of view changes
Emitted when the list of map layers for terrain texture has changed [signal]
Emitted when the map tile resoulution has changed [signal]
Emitted when the maximum terrain ground error has changed [signal]
Emitted when the maximum terrain screen error has changed [signal]
Emitted when the list of point lights changes
Emitted when the list of map’s extra renderers have been modified
Emitted when the selection color has changed [signal]
Emitted when the flag whether camera’s view center is shown has changed
Emitted when the flag whether labels are displayed on terrain tiles has changed [signal]
Emitted when the flag whether terrain’s bounding boxes are shown has changed [signal]
Emitted when the flag whether terrain’s tile info is shown has changed [signal]
Emitted when the terrain generator has changed [signal]
Emitted when terrain’s map theme has changed
Emitted when terrain shading enabled flag or terrain shading material has changed
Emitted when the vertical scale of the terrain has changed [signal]
-
backgroundColor
(self) → QColor¶ Returns background color of the 3D map view
- Return type
QColor
-
backgroundColorChanged
¶ Emitted when the background color has changed [signal]
-
childEvent
(self, QChildEvent)¶
-
connectNotify
(self, QMetaMethod)¶
-
crs
(self) → QgsCoordinateReferenceSystem¶ Returns coordinate reference system used in the 3D scene
- Return type
-
customEvent
(self, QEvent)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
fieldOfView
(self) → float¶ Returns the camera lens’ field of view
New in version 3.8.
- Return type
float
-
fieldOfViewChanged
¶ Emitted when the camera lens field of view changes
New in version 3.8: [signal]
-
hasSkyboxEnabled
(self) → bool¶ Returns whether skybox is enabled
- Return type
bool
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
isTerrainShadingEnabled
(self) → bool¶ Returns whether terrain shading is enabled. When enabled, in addition to the terrain texture generated from the map, the terrain rendering will take into account position of the lights, terrain normals and terrain shading material (ambient and specular colors, shininess).
New in version 3.6.
- Return type
bool
-
layers
(self) → List[QgsMapLayer]¶ Returns the list of map layers to be rendered as a texture of the terrain
Note
If terrain map theme is set, it has a priority over the list of layers specified here.
- Return type
List[QgsMapLayer]
-
layersChanged
¶ Emitted when the list of map layers for terrain texture has changed [signal]
-
mapThemeCollection
(self) → QgsMapThemeCollection¶ Returns pointer to the collection of map themes. Normally this would be
QgsProject.mapThemeCollection()
of the currently used project. Without a valid map theme collection object it is not possible to resolve map themes from their names.New in version 3.6.
- Return type
-
mapTileResolution
(self) → int¶ Returns resolution (in pixels) of the texture of a terrain tile. This parameter influences how many zoom levels for terrain tiles there will be (together with
maxTerrainGroundError()
)- Return type
int
-
mapTileResolutionChanged
¶ Emitted when the map tile resoulution has changed [signal]
-
mapToWorldCoordinates
(self, mapCoords: QgsVector3D) → QgsVector3D¶ Converts map coordinates to 3D world coordinates (applies offset and turns (x,y,z) into (x,-z,y))
- Parameters
mapCoords (QgsVector3D) –
- Return type
-
maxTerrainGroundError
(self) → float¶ Returns maximum ground error of terrain tiles in world units. This parameter influences how many zoom levels there will be (together with
mapTileResolution()
). This value tells that when the given ground error is reached (e.g. 10 meters), it makes no sense to further split terrain tiles into finer ones because they will not add extra details anymore.- Return type
float
-
maxTerrainGroundErrorChanged
¶ Emitted when the maximum terrain ground error has changed [signal]
-
maxTerrainScreenError
(self) → float¶ Returns maximum allowed screen error of terrain tiles in pixels. This parameter decides how aggressively less detailed terrain tiles are swapped to more detailed ones as camera gets closer. Each tile has its error defined in world units - this error gets projected to screen pixels according to camera view and if the tile’s error is greater than the allowed error, it will be swapped by more detailed tiles with lower error.
- Return type
float
-
maxTerrainScreenErrorChanged
¶ Emitted when the maximum terrain screen error has changed [signal]
-
origin
(self) → QgsVector3D¶ Returns coordinates in map CRS at which 3D scene has origin (0,0,0)
- Return type
-
outputDpi
(self) → float¶ Returns DPI used for conversion between real world units (e.g. mm) and pixels Default value is 96
New in version 3.10.
- Return type
float
-
pathResolver
(self) → QgsPathResolver¶ Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g. for resolving relative symbol paths.
See also
New in version 3.0.
- Return type
-
pointLights
(self) → List[QgsPointLightSettings]¶ Returns list of point lights defined in the scene
New in version 3.6.
- Return type
List[QgsPointLightSettings]
-
pointLightsChanged
¶ Emitted when the list of point lights changes
New in version 3.6: [signal]
-
readXml
(self, elem: QDomElement, context: QgsReadWriteContext)¶ Reads configuration from a DOM element previously written by
writeXml()
- Parameters
elem (QDomElement) –
context (QgsReadWriteContext) –
-
receivers
(self, PYQT_SIGNAL) → int¶
-
renderers
(self) → List[QgsAbstract3DRenderer]¶ Returns list of extra 3D renderers
- Return type
List[QgsAbstract3DRenderer]
-
renderersChanged
¶ Emitted when the list of map’s extra renderers have been modified
New in version 3.10: [signal]
-
resolveReferences
(self, project: QgsProject)¶ Resolves references to other objects (map layers) after the call to
readXml()
- Parameters
project (QgsProject) –
-
selectionColor
(self) → QColor¶ Returns color used for selected features
- Return type
QColor
-
selectionColorChanged
¶ Emitted when the selection color has changed [signal]
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setBackgroundColor
(self, color: Union[QColor, Qt.GlobalColor])¶ Sets background color of the 3D map view
- Parameters
color (Union[QColor) –
-
setCrs
(self, crs: QgsCoordinateReferenceSystem)¶ Sets coordinate reference system used in the 3D scene
- Parameters
crs (QgsCoordinateReferenceSystem) –
-
setFieldOfView
(self, fieldOfView: float)¶ Sets the camera lens’ field of view
New in version 3.8.
- Parameters
fieldOfView (float) –
-
setLayers
(self, layers: Iterable[QgsMapLayer])¶ Sets the list of map layers to be rendered as a texture of the terrain
Note
If terrain map theme is set, it has a priority over the list of layers specified here.
- Parameters
layers (Iterable[QgsMapLayer]) –
-
setMapThemeCollection
(self, mapThemes: QgsMapThemeCollection)¶ Sets pointer to the collection of map themes.
See also
New in version 3.6.
- Parameters
mapThemes (QgsMapThemeCollection) –
-
setMapTileResolution
(self, res: int)¶ Sets resolution (in pixels) of the texture of a terrain tile
See also
- Parameters
res (int) –
-
setMaxTerrainGroundError
(self, error: float)¶ Returns maximum ground error of terrain tiles in world units.
See also
- Parameters
error (float) –
-
setMaxTerrainScreenError
(self, error: float)¶ Sets maximum allowed screen error of terrain tiles in pixels.
See also
- Parameters
error (float) –
-
setOrigin
(self, origin: QgsVector3D)¶ Sets coordinates in map CRS at which our 3D world has origin (0,0,0)
We move the 3D world origin to the center of the extent of our terrain: this is done to minimize the impact of numerical errors when operating with 32-bit floats. Unfortunately this is not enough when working with a large area (still results in jitter with scenes spanning hundreds of kilometers and zooming in a lot).
Need to look into more advanced techniques like “relative to center” or “relative to eye” to improve the precision.
- Parameters
origin (QgsVector3D) –
-
setOutputDpi
(self, dpi: float)¶ Sets DPI used for conversion between real world units (e.g. mm) and pixels
- Parameters
dpi (float) – the number of dot per inch
New in version 3.10.
-
setPathResolver
(self, resolver: QgsPathResolver)¶ Sets the path
resolver
for conversion between relative and absolute paths during rendering operations, e.g. for resolving relative symbol paths.See also
New in version 3.0.
- Parameters
resolver (QgsPathResolver) –
-
setPointLights
(self, pointLights: Iterable[QgsPointLightSettings])¶ Sets list of point lights defined in the scene
New in version 3.6.
- Parameters
pointLights (Iterable[QgsPointLightSettings]) –
-
setRenderers
(self, renderers: Iterable[QgsAbstract3DRenderer])¶ Sets list of extra 3D renderers to use in the scene. Takes ownership of the objects.
- Parameters
renderers (Iterable[QgsAbstract3DRenderer]) –
-
setSelectionColor
(self, color: Union[QColor, Qt.GlobalColor])¶ Sets color used for selected features
- Parameters
color (Union[QColor) –
-
setShowCameraViewCenter
(self, enabled: bool)¶ Sets whether to show camera’s view center as a sphere (for debugging)
New in version 3.4.
- Parameters
enabled (bool) –
-
setShowLabels
(self, enabled: bool)¶ Sets whether to display labels on terrain tiles
- Parameters
enabled (bool) –
-
setShowTerrainBoundingBoxes
(self, enabled: bool)¶ Sets whether to display bounding boxes of terrain tiles (for debugging)
- Parameters
enabled (bool) –
-
setShowTerrainTilesInfo
(self, enabled: bool)¶ Sets whether to display extra tile info on top of terrain tiles (for debugging)
- Parameters
enabled (bool) –
-
setSkybox
(self, enabled: bool, fileBase: str = '', fileExtension: str = '')¶ Sets skybox configuration. When enabled, map scene will try to load six texture files using the following syntax of filenames: “[base]_[side][extension]” where [side] is one of the following: posx/posy/posz/negx/negy/negz and [base] and [extension] are the arguments passed this method.
- Parameters
enabled (bool) –
fileBase (str = '') –
fileExtension (str = '') –
-
setTerrainMapTheme
(self, theme: str)¶ Sets name of the map theme.
See also
New in version 3.6.
- Parameters
theme (str) –
-
setTerrainShadingEnabled
(self, enabled: bool)¶ Sets whether terrain shading is enabled.
See also
New in version 3.6.
- Parameters
enabled (bool) –
-
setTerrainShadingMaterial
(self, material: QgsPhongMaterialSettings)¶ Sets terrain shading material.
See also
New in version 3.6.
- Parameters
material (QgsPhongMaterialSettings) –
-
setTerrainVerticalScale
(self, zScale: float)¶ Sets vertical scale (exaggeration) of terrain (1 = true scale, > 1 = hills get more pronounced)
- Parameters
zScale (float) –
-
setTransformContext
(self, context: QgsCoordinateTransformContext)¶ Sets the coordinate transform
context
, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.See also
- Parameters
context (QgsCoordinateTransformContext) –
-
showCameraViewCenter
(self) → bool¶ Returns whether to show camera’s view center as a sphere (for debugging)
New in version 3.4.
- Return type
bool
-
showCameraViewCenterChanged
¶ Emitted when the flag whether camera’s view center is shown has changed
New in version 3.4: [signal]
-
showLabels
(self) → bool¶ Returns whether to display labels on terrain tiles
- Return type
bool
-
showLabelsChanged
¶ Emitted when the flag whether labels are displayed on terrain tiles has changed [signal]
-
showTerrainBoundingBoxes
(self) → bool¶ Returns whether to display bounding boxes of terrain tiles (for debugging)
- Return type
bool
-
showTerrainBoundingBoxesChanged
¶ Emitted when the flag whether terrain’s bounding boxes are shown has changed [signal]
-
showTerrainTilesInfo
(self) → bool¶ Returns whether to display extra tile info on top of terrain tiles (for debugging)
- Return type
bool
-
showTerrainTilesInfoChanged
¶ Emitted when the flag whether terrain’s tile info is shown has changed [signal]
-
skyboxFileBase
(self) → str¶ Returns base part of filenames of skybox (see
setSkybox()
)- Return type
str
-
skyboxFileExtension
(self) → str¶ Returns extension part of filenames of skybox (see
setSkybox()
)- Return type
str
-
terrainGeneratorChanged
¶ Emitted when the terrain generator has changed [signal]
-
terrainMapTheme
(self) → str¶ Returns name of the map theme (from the active project) that will be used for terrain’s texture. Empty map theme name means that the map theme is not overridden and the current map theme will be used.
Note
Support for map themes only works if
mapThemeCollection()
is a valid object (otherwise it is not possible to resolve map themes from names)New in version 3.6.
- Return type
str
-
terrainMapThemeChanged
¶ Emitted when terrain’s map theme has changed
New in version 3.6: [signal]
-
terrainShadingChanged
¶ Emitted when terrain shading enabled flag or terrain shading material has changed
New in version 3.6: [signal]
-
terrainShadingMaterial
(self) → QgsPhongMaterialSettings¶ Returns terrain shading material. Diffuse color component is ignored since the diffuse component is provided by 2D rendered map texture. Only used when
isTerrainShadingEnabled()
isTrue
.New in version 3.6.
- Return type
-
terrainVerticalScale
(self) → float¶ Returns vertical scale (exaggeration) of terrain
- Return type
float
-
terrainVerticalScaleChanged
¶ Emitted when the vertical scale of the terrain has changed [signal]
-
timerEvent
(self, QTimerEvent)¶
-
transformContext
(self) → QgsCoordinateTransformContext¶ Returns the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
See also
- Return type
-
worldToMapCoordinates
(self, worldCoords: QgsVector3D) → QgsVector3D¶ Converts 3D world coordinates to map coordinates (applies offset and turns (x,y,z) into (x,-z,y))
- Parameters
worldCoords (QgsVector3D) –
- Return type
-
writeXml
(self, doc: QDomDocument, context: QgsReadWriteContext) → QDomElement¶ Writes configuration to a DOM element, to be used later with
readXml()
- Parameters
doc (QDomDocument) –
context (QgsReadWriteContext) –
- Return type
QDomElement
-