[Gfoss] altezza o coordinata z nella programmazione qgis

Elyparker elyparker1 a gmail.com
Sab 26 Ott 2013 13:12:15 CEST


salve spero che qualcuno si intenda di programmazione  qgis

devo scrivere un plugin che accede alla coordinata z se c'è delle 
geometrie o alla banda di un raster tin

questo il mio codice

    def getZ(self,livello,point):
         z=0

         if (livello.type()==QgsMapLayer.VectorLayer ):

                 pntGeom = QgsGeometry.fromPoint(point)

                 pntBuff = pntGeom.buffer( 
(self.canvas.mapUnitsPerPixel() * 2),0)
                 rect = pntBuff.boundingBox()
                 livello.select(rect,True)

                 if livello.selectedFeatureCount()>0 :
                     punto=livello.selectedFeatures().pop()
                     geom=punto.geometry()
                     wkb=geom.asWkb()
                     z=loads(wkb).z
                     return z
         elif    (livello.type()==QgsMapLayer.RasterLayer):
altezza=livello.dataProvider().identify(point,QgsRaster.IdentifyFormatValue)
                     z=[float((altezza.results()[1]) or 0)]
                     return z
         return 0

in generale con la situazione che mi serve funziona
uso le librerie shapely per caricare una geometria in wkb  per caricare la z

ma mi chiedevo se  c'è un modo + standard e/o + elegante che mi eviti di 
importare questa libreria

come è combinato il supporto alle geometrie 25D (ossia con la z) in qgis?
si deve usare per forza shapely o altro?



Maggiori informazioni sulla lista Gfoss