[Qgis-developer] update plugin to QGIS 2.0

Etienne Tourigny etourigny.dev at gmail.com
Thu Aug 1 12:00:08 PDT 2013


Have a look at the source of the value tool plugin, it calls the identify()
method and has been updated to 2.0 api.

Etienne

On Thu, Aug 1, 2013 at 1:58 PM, Otto Dassau <dassau at gbd-consult.de> wrote:

> Hi,
>
> I want to update a plugin from 1.8 to QGIS 2.0 and it throws following
> error:
>
> Traceback (most recent call last):
> File
>
>
> "/home/dassau/.qgis2/python/plugins/weibullanalyse/weibullanalysedialog.py",
> line 447, in printValue self.showValues() File
>
>
> "/home/dassau/.qgis2/python/plugins/weibullanalyse/weibullanalysedialog.py",
> line 453, in showValues self.plot() File
>
>
> "/home/dassau/.qgis2/python/plugins/weibullanalyse/weibullanalysedialog.py",
> line 514, in plot w = float(self.sampleRaster(self.InRastW.currentText(),
> self.xCoord, self.yCoord))/10 File
>
>
> "/home/dassau/.qgis2/python/plugins/weibullanalyse/weibullanalysedialog.py",
> line 299, in sampleRaster return self.sampleRaster20(layer, x, y) File
>
>
> "/home/dassau/.qgis2/python/plugins/weibullanalyse/weibullanalysedialog.py",
> line 284, in sampleRaster20 success, data =
> layer.dataProvider().identify(QgsPoint(x,y))
>
> TypeError:
> QgsRasterDataProvider.identify(QgsPoint, QgsRaster.IdentifyFormat,
> QgsRectangle theExtent=QgsRectangle(), int theWidth=0, int theHeight=0):
> not enough arguments
>
> I found at http://hub.qgis.org/wiki/quantum-gis/API_changes_for_version_20
> the section QgsRasterDataProvider which should fit. And the Method, where I
> assume the error occurs should be this
>
> # get value at mouse position QGIS <= 1.8 (working for 1.8)
> def sampleRaster18(self, layer, x, y):
>    success, data = layer.identify(QgsPoint(x,y))
>    for band, value in data.items():
>      return value
>
> now what I tried but doesn't work (see error above)
>
> # get value at mouse position QGIS >= 2.0 (not working yet :()
> def sampleRaster20(self, layer, x, y):
>    success, data = layer.dataProvider().identify(QgsPoint(x,y))
>    for band, value in data.items():
>      return value
>
> my problem is, that I don't understand how to implement in sampleRaster20
> the new method from the API_changes_for_version_20 website which says:
>
> QMap<int, QVariant> identify( const QgsPoint & thePoint, IdentifyFormat
> theFormat, const QgsRectangle &theExtent = QgsRectangle(), int theWidth =
> 0, int theHeight = 0 )
>
> can anybody help?
>
> Thanks
>
> Otto
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20130801/da10811e/attachment.html>


More information about the Qgis-developer mailing list