[Qgis-developer] update plugin to QGIS 2.0

Otto Dassau dassau at gbd-consult.de
Thu Aug 1 09:58:56 PDT 2013


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


More information about the Qgis-developer mailing list