Hi, With QGIS master you can use updateTriangularMesh. <https://qgis.org/pyqgis/master/core/QgsMeshLayer.html#qgis.core.QgsMeshLayer.updateTriangularMesh> Before, there is a workaround that consists to just call createMapRenderer <https://qgis.org/pyqgis/3.12/core/QgsMeshLayer.html#qgis.core.QgsMeshLayer.createMapRenderer> without using the renderer.
Vincent Le sam. 25 avr. 2020 à 11:32, Jorge Almerio <jorgealme...@yahoo.com.br> a écrit : > Hi everyone, > > Sometimes I got "NaN" return when trying to get scalar value to a point > from a Mesh layer. I guess the reason is that it was not rendered > previously as said in the documentation. > > < > https://qgis.org/api/classQgsMeshLayer.html#a07cb62f04b64979500d3873afb580216 > > > QgsMeshDatasetValue: > "Note: > It uses previously cached and indexed triangular mesh and so if the > layer has not been rendered previously (e.g. when used in a script) it > returns NaN value" > > When I turn ON and OFF the loaded mesh layer in the active project it > Works! > > I would like to know if there is a proper way to render the mesh layer, > before get values. > > Below is my code: > > proj = QgsProject.instance() > layerPto = iface.activeLayer() # a Point layer > layer = proj.mapLayersByName("mesh01")[0] # a Mesh layer > dataset = QgsMeshDatasetIndex(0,0) > for feat in layerPto.getSelectedFeatures(): > ptoGeo = feat.geometry() > pt = ptoGeo.asPoint() > value = layer.datasetValue(dataset, pt).scalar() > print('elevation={}'.format(value)) > > > > _______________________________________________ > QGIS-Developer mailing list > QGIS-Developer@lists.osgeo.org > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer